{"push_id":2424000275,"size":1,"distinct_size":1,"ref":"refs/heads/o8.1-up","head":"93f24b2d8c5009d90e772862e44515c4a12f6abd","before":"e6a912db8226c906497a512a95710feb2ea5b3df","commits":[{"sha":"93f24b2d8c5009d90e772862e44515c4a12f6abd","author":{"name":"ShevT","email":"261c894a1a030f6ea818b73b6197d347b4509f5d@mail.ru"},"message":"Linux 4.4.122 -> Linux 4.4.123\n\nblkcg: fix double free of new_blkg in blkcg_init_queue\n\ncommit 9b54d816e00425c3a517514e0d677bb3cec49258 upstream.\n\nIf blkg_create fails, new_blkg passed as an argument will\nbe freed by blkg_create, so there is no need to free it again.\n\nSigned-off-by: Hou Tao <houtao1@huawei.com>\nSigned-off-by: Jens Axboe <axboe@fb.com>\nCc: Guenter Roeck <linux@roeck-us.net>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nInput: tsc2007 - check for presence and power down tsc2007 during probe\n\n[ Upstream commit 934df23171e7c5b71d937104d4957891c39748ff ]\n\n1. check if chip is really present and don't succeed if it isn't.\n2. if it succeeds, power down the chip until accessed\n\nSigned-off-by: H. Nikolaus Schaller <hns@goldelico.com>\nSigned-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nstaging: speakup: Replace BUG_ON() with WARN_ON().\n\n[ Upstream commit d351c2db5420bb17dcd2d9aac7ddb5f64c6d04b3 ]\n\nBUG_ON() is replaced with WARN_ON() and EINVAL is returned, when\nWARN_ON() is true. This fixes the following checkpatch issue:\n\nAvoid crashing the kernel - try using WARN_ON & recovery code rather\nthan BUG() or BUG_ON().\n\nSigned-off-by: Varsha Rao <rvarsha016@gmail.com>\nReviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nstaging: wilc1000: add check for kmalloc allocation failure.\n\n[ Upstream commit 6cc0c259d034c6ab48f4e12f505213988e73d380 ]\n\nAdd a sanity check that wid.val has been allocated, fixes a null\npointer deference on stamac when calling ether_add_copy.\n\nDetected by CoverityScan, CID#1369537 (\"Dereference null return value\")\n\nSigned-off-by: Colin Ian King <colin.king@canonical.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nHID: reject input outside logical range only if null state is set\n\n[ Upstream commit 3f3752705dbd50b66b66ad7b4d54fe33d2f746ed ]\n\nThis patch fixes an issue in drivers/hid/hid-input.c where USB HID\ncontrol null state flag is not checked upon rejecting inputs outside\nlogical minimum-maximum range. The check should be made according to USB\nHID specification 1.11, section 6.2.2.5, p.31. The fix will resolve\nissues with some game controllers, such as:\nhttps://bugzilla.kernel.org/show_bug.cgi?id=68621\n\n[tk@the-tk.com: shortened and fixed spelling in commit message]\nSigned-off-by: Valtteri Heikkilä <rnd@nic.fi>\nSigned-off-by: Tomasz Kramkowski <tk@the-tk.com>\nAcked-By: Benjamin Tissoires <benjamin.tissoires@redhat.com>\nSigned-off-by: Jiri Kosina <jkosina@suse.cz>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ndrm: qxl: Don't alloc fbdev if emulation is not supported\n\n[ Upstream commit 861078381ba56b56808113736000d9e7ead349c8 ]\n\nIf fbdev emulation is disabled, the QXL shutdown path will try to clean\na framebuffer that wasn't initialized, hitting the Oops below.  The\nproblem is that even when FBDEV_EMULATION is disabled we allocate the\nqfbdev strutucture, but we don't initialize it.  The fix is to stop\nallocating the memory, since it won't be used.  This allows the existing\nverification in the cleanup hook to do it's job preventing the oops.\n\nNow that we don't allocate the unused fbdev structure, we need to be\ncareful when dereferencing it in the PM suspend hook.\n\n[   24.284684] BUG: unable to handle kernel NULL pointer dereference at 00000000000002e0\n[   24.285627] IP: mutex_lock+0x18/0x30\n[   24.286049] PGD 78cdf067\n[   24.286050] PUD 7940f067\n[   24.286344] PMD 0\n[   24.286649]\n[   24.287072] Oops: 0002 [#1] SMP\n[   24.287422] Modules linked in: qxl\n[   24.287806] CPU: 0 PID: 2328 Comm: bash Not tainted 4.10.0-rc5+ #97\n[   24.288515] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014\n[   24.289681] task: ffff88007c4c0000 task.stack: ffffc90001b58000\n[   24.290354] RIP: 0010:mutex_lock+0x18/0x30\n[   24.290812] RSP: 0018:ffffc90001b5bcb0 EFLAGS: 00010246\n[   24.291401] RAX: 0000000000000000 RBX: 00000000000002e0 RCX: 0000000000000000\n[   24.292209] RDX: ffff88007c4c0000 RSI: 0000000000000001 RDI: 00000000000002e0\n[   24.292987] RBP: ffffc90001b5bcb8 R08: fffffffffffffffe R09: 0000000000000001\n[   24.293797] R10: ffff880078d80b80 R11: 0000000000011400 R12: 0000000000000000\n[   24.294601] R13: 00000000000002e0 R14: ffffffffa0009c28 R15: 0000000000000060\n[   24.295439] FS:  00007f30e3acbb40(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000\n[   24.296364] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[   24.296997] CR2: 00000000000002e0 CR3: 0000000078c7b000 CR4: 00000000000006f0\n[   24.297813] Call Trace:\n[   24.298097]  drm_framebuffer_cleanup+0x1f/0x70\n[   24.298612]  qxl_fbdev_fini+0x68/0x90 [qxl]\n[   24.299074]  qxl_modeset_fini+0xd/0x30 [qxl]\n[   24.299562]  qxl_pci_remove+0x22/0x50 [qxl]\n[   24.300025]  pci_device_remove+0x34/0xb0\n[   24.300507]  device_release_driver_internal+0x150/0x200\n[   24.301082]  device_release_driver+0xd/0x10\n[   24.301587]  unbind_store+0x108/0x150\n[   24.301993]  drv_attr_store+0x20/0x30\n[   24.302402]  sysfs_kf_write+0x32/0x40\n[   24.302827]  kernfs_fop_write+0x108/0x190\n[   24.303269]  __vfs_write+0x23/0x120\n[   24.303678]  ? security_file_permission+0x36/0xb0\n[   24.304193]  ? rw_verify_area+0x49/0xb0\n[   24.304636]  vfs_write+0xb0/0x190\n[   24.305004]  SyS_write+0x41/0xa0\n[   24.305362]  entry_SYSCALL_64_fastpath+0x1a/0xa9\n[   24.305887] RIP: 0033:0x7f30e31d9620\n[   24.306285] RSP: 002b:00007ffc54b47e68 EFLAGS: 00000246 ORIG_RAX: 0000000000000001\n[   24.307128] RAX: ffffffffffffffda RBX: 00007f30e3497600 RCX: 00007f30e31d9620\n[   24.307928] RDX: 000000000000000d RSI: 0000000000da2008 RDI: 0000000000000001\n[   24.308727] RBP: 000000000070bc60 R08: 00007f30e3498760 R09: 00007f30e3acbb40\n[   24.309504] R10: 0000000000000073 R11: 0000000000000246 R12: 0000000000000001\n[   24.310295] R13: 0000000000000000 R14: 0000000000000000 R15: 00007ffc54b47f34\n[   24.311095] Code: 0e 01 e9 7b fe ff ff 66 90 66 2e 0f 1f 84 00 00 00 00 00\n55 48 89 e5 53 48 89 fb e8 83 e8 ff ff 65 48 8b 14 25 40 c4 00 00 31 c0 <3e>\n48 0f b1 13 48 85 c0 74 08 48 89 df e8 66 fd ff ff 5b 5d c3\n[   24.313182] RIP: mutex_lock+0x18/0x30 RSP: ffffc90001b5bcb0\n[   24.313811] CR2: 00000000000002e0\n[   24.314208] ---[ end trace 29669c1593cae14b ]---\n\nSigned-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>\nLink: http://patchwork.freedesktop.org/patch/msgid/20170227203330.18542-1-krisman@collabora.co.uk\nSigned-off-by: Gerd Hoffmann <kraxel@redhat.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nath10k: fix a warning during channel switch with multiple vaps\n\n[ Upstream commit c73f8c00330f59ce9b1ace9ff698aca83390d358 ]\n\nDoing a channel switch via hostapd_cli seems to update\nthe new channel context for each VAP's appropriately as below\nin 'ath10k_mac_update_vif_chan', hence we can safely suppress the\nwarning that shows up during this operation and dump the warning only\nif no vaps are available for channel switch\n\nhostapd_cli -i wlan0 chan_switch 5 5200\nOK\n\nath10k_pci : mac chanctx switch n_vifs 3 mode 1\nath10k_pci : mac chanctx switch vdev_id 2 freq 5180->5200 width 0->0\nath10k_pci : mac chanctx switch vdev_id 1 freq 5180->5200 width 0->0\nath10k_pci : mac chanctx switch vdev_id 0 freq 5180->5200 width 0->0\n\nCall Trace:\n\nWARNING: backports-20161201-3.14.77-9ab3068/drivers/net/wireless/ath/ath10k/mac.c:7126\n[<c022f2d4>] (warn_slowpath_null) from [<bf7f150c>]\n(ath10k_reconfig_complete+0xe4/0x25c [ath10k_core])\n[<bf7f150c>] (ath10k_reconfig_complete [ath10k_core])\n[<bf7f35f0>] (ath10k_mac_vif_ap_csa_work+0x214/0x370 [ath10k_core])\n[<bf7f38b8>] (ath10k_mac_op_change_chanctx+0x108/0x128 [ath10k_core])\n[<bf782ac0>] (ieee80211_recalc_chanctx_min_def+0x30c/0x430 [mac80211])\n[<bf7830a4>] (ieee80211_recalc_smps_chanctx+0x2ec/0x840 [mac80211])\n[<bf7843e8>] (ieee80211_vif_use_reserved_context+0x7c/0xf8 [mac80211])\n[<bf7843e8>] (ieee80211_vif_use_reserved_context [mac80211])\n[<bf76e5d4>] (ieee80211_csa_finalize_work+0x5c/0x88 [mac80211])\n\nFixes: d7bf4b4aba05 (\"ath10k: fix ar->rx_channel updating logic\")\nSigned-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>\nSigned-off-by: Kalle Valo <kvalo@qca.qualcomm.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nPCI/MSI: Stop disabling MSI/MSI-X in pci_device_shutdown()\n\n[ Upstream commit fda78d7a0ead144f4b2cdb582dcba47911f4952c ]\n\nThe pci_bus_type .shutdown method, pci_device_shutdown(), is called from\ndevice_shutdown() in the kernel restart and shutdown paths.\n\nPreviously, pci_device_shutdown() called pci_msi_shutdown() and\npci_msix_shutdown().  This disables MSI and MSI-X, which causes the device\nto fall back to raising interrupts via INTx.  But the driver is still bound\nto the device, it doesn't know about this change, and it likely doesn't\nhave an INTx handler, so these INTx interrupts cause \"nobody cared\"\nwarnings like this:\n\n  irq 16: nobody cared (try booting with the \"irqpoll\" option)\n  CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.8.2-1.el7_UNSUPPORTED.x86_64 #1\n  Hardware name: Hewlett-Packard HP Z820 Workstation/158B, BIOS J63 v03.90 06/\n  ...\n\nThe MSI disabling code was added by d52877c7b1af (\"pci/irq: let\npci_device_shutdown to call pci_msi_shutdown v2\") because a driver left MSI\nenabled and kdump failed because the kexeced kernel wasn't prepared to\nreceive the MSI interrupts.\n\nSubsequent commits 1851617cd2da (\"PCI/MSI: Disable MSI at enumeration even\nif kernel doesn't support MSI\") and  e80e7edc55ba (\"PCI/MSI: Initialize MSI\ncapability for all architectures\") changed the kexeced kernel to disable\nall MSIs itself so it no longer depends on the crashed kernel to clean up\nafter itself.\n\nStop disabling MSI/MSI-X in pci_device_shutdown().  This resolves the\n\"nobody cared\" unhandled IRQ issue above.  It also allows PCI serial\ndevices, which may rely on the MSI interrupts, to continue outputting\nmessages during reboot/shutdown.\n\n[bhelgaas: changelog, drop pci_msi_shutdown() and pci_msix_shutdown() calls\naltogether]\nFixes: https://bugzilla.kernel.org/show_bug.cgi?id=187351\nSigned-off-by: Prarit Bhargava <prarit@redhat.com>\nSigned-off-by: Bjorn Helgaas <bhelgaas@google.com>\nCC: Alex Williamson <alex.williamson@redhat.com>\nCC: David Arcari <darcari@redhat.com>\nCC: Myron Stowe <mstowe@redhat.com>\nCC: Lukas Wunner <lukas@wunner.de>\nCC: Keith Busch <keith.busch@intel.com>\nCC: Mika Westerberg <mika.westerberg@linux.intel.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nselinux: check for address length in selinux_socket_bind()\n\n[ Upstream commit e2f586bd83177d22072b275edd4b8b872daba924 ]\n\nKMSAN (KernelMemorySanitizer, a new error detection tool) reports use of\nuninitialized memory in selinux_socket_bind():\n\n==================================================================\nBUG: KMSAN: use of unitialized memory\ninter: 0\nCPU: 3 PID: 1074 Comm: packet2 Tainted: G    B           4.8.0-rc6+ #1916\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011\n 0000000000000000 ffff8800882ffb08 ffffffff825759c8 ffff8800882ffa48\n ffffffff818bf551 ffffffff85bab870 0000000000000092 ffffffff85bab550\n 0000000000000000 0000000000000092 00000000bb0009bb 0000000000000002\nCall Trace:\n [<     inline     >] __dump_stack lib/dump_stack.c:15\n [<ffffffff825759c8>] dump_stack+0x238/0x290 lib/dump_stack.c:51\n [<ffffffff818bdee6>] kmsan_report+0x276/0x2e0 mm/kmsan/kmsan.c:1008\n [<ffffffff818bf0fb>] __msan_warning+0x5b/0xb0 mm/kmsan/kmsan_instr.c:424\n [<ffffffff822dae71>] selinux_socket_bind+0xf41/0x1080 security/selinux/hooks.c:4288\n [<ffffffff8229357c>] security_socket_bind+0x1ec/0x240 security/security.c:1240\n [<ffffffff84265d98>] SYSC_bind+0x358/0x5f0 net/socket.c:1366\n [<ffffffff84265a22>] SyS_bind+0x82/0xa0 net/socket.c:1356\n [<ffffffff81005678>] do_syscall_64+0x58/0x70 arch/x86/entry/common.c:292\n [<ffffffff8518217c>] entry_SYSCALL64_slow_path+0x25/0x25 arch/x86/entry/entry_64.o:?\nchained origin: 00000000ba6009bb\n [<ffffffff810bb7a7>] save_stack_trace+0x27/0x50 arch/x86/kernel/stacktrace.c:67\n [<     inline     >] kmsan_save_stack_with_flags mm/kmsan/kmsan.c:322\n [<     inline     >] kmsan_save_stack mm/kmsan/kmsan.c:337\n [<ffffffff818bd2b8>] kmsan_internal_chain_origin+0x118/0x1e0 mm/kmsan/kmsan.c:530\n [<ffffffff818bf033>] __msan_set_alloca_origin4+0xc3/0x130 mm/kmsan/kmsan_instr.c:380\n [<ffffffff84265b69>] SYSC_bind+0x129/0x5f0 net/socket.c:1356\n [<ffffffff84265a22>] SyS_bind+0x82/0xa0 net/socket.c:1356\n [<ffffffff81005678>] do_syscall_64+0x58/0x70 arch/x86/entry/common.c:292\n [<ffffffff8518217c>] return_from_SYSCALL_64+0x0/0x6a arch/x86/entry/entry_64.o:?\norigin description: ----address@SYSC_bind (origin=00000000b8c00900)\n==================================================================\n\n(the line numbers are relative to 4.8-rc6, but the bug persists upstream)\n\n, when I run the following program as root:\n\n=======================================================\n  #include <string.h>\n  #include <sys/socket.h>\n  #include <netinet/in.h>\n\n  int main(int argc, char *argv[]) {\n    struct sockaddr addr;\n    int size = 0;\n    if (argc > 1) {\n      size = atoi(argv[1]);\n    }\n    memset(&addr, 0, sizeof(addr));\n    int fd = socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP);\n    bind(fd, &addr, size);\n    return 0;\n  }\n=======================================================\n\n(for different values of |size| other error reports are printed).\n\nThis happens because bind() unconditionally copies |size| bytes of\n|addr| to the kernel, leaving the rest uninitialized. Then\nsecurity_socket_bind() reads the IP address bytes, including the\nuninitialized ones, to determine the port, or e.g. pass them further to\nsel_netnode_find(), which uses them to calculate a hash.\n\nSigned-off-by: Alexander Potapenko <glider@google.com>\nAcked-by: Eric Dumazet <edumazet@google.com>\n[PM: fixed some whitespace damage]\nSigned-off-by: Paul Moore <paul@paul-moore.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nperf sort: Fix segfault with basic block 'cycles' sort dimension\n\n[ Upstream commit 4b0b3aa6a2756e6115fdf275c521e4552a7082f3 ]\n\nSkip the sample which doesn't have branch_info to avoid segmentation\nfault:\n\nThe fault can be reproduced by:\n\n  perf record -a\n  perf report -F cycles\n\nSigned-off-by: Changbin Du <changbin.du@intel.com>\nTested-by: Arnaldo Carvalho de Melo <acme@redhat.com>\nCc: Andi Kleen <ak@linux.intel.com>\nCc: Peter Zijlstra <peterz@infradead.org>\nFixes: 0e332f033a82 (\"perf tools: Add support for cycles, weight branch_info field\")\nLink: http://lkml.kernel.org/r/20170313083148.23568-1-changbin.du@intel.com\nSigned-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ni40e: Acquire NVM lock before reads on all devices\n\n[ Upstream commit 96a39aed25e6559b160786117df124084feb9080 ]\n\nAcquire NVM lock before reads on all devices.  Previously, locks were\nonly used for X722 and later.  Fixes an issue where simultaneous X710\nNVM accesses were interfering with each other.\n\nChange-ID: If570bb7acf958cef58725ec2a2011cead6f80638\nSigned-off-by: Aaron Salter <aaron.k.salter@intel.com>\nTested-by: Andrew Bowers <andrewx.bowers@intel.com>\nSigned-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ni40e: fix ethtool to get EEPROM data from X722 interface\n\n[ Upstream commit c271dd6c391b535226cf1a81aaad9f33cb5899d3 ]\n\nCurrently ethtool -e will error out with a X722 interface\nas its EEPROM has a scope limit at offset 0x5B9FFF.\nThis patch fixes the issue by setting the EEPROM length to\nthe scope limit to avoid NVM read failure beyond that.\n\nChange-ID: I0b7d4dd6c7f2a57cace438af5dffa0f44c229372\nSigned-off-by: Lihong Yang <lihong.yang@intel.com>\nTested-by: Andrew Bowers <andrewx.bowers@intel.com>\nSigned-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nperf tools: Make perf_event__synthesize_mmap_events() scale\n\n[ Upstream commit 88b897a30c525c2eee6e7f16e1e8d0f18830845e ]\n\nThis patch significantly improves the execution time of\nperf_event__synthesize_mmap_events() when running perf record on systems\nwhere processes have lots of threads.\n\nIt just happens that cat /proc/pid/maps support uses a O(N^2) algorithm to\ngenerate each map line in the maps file.  If you have 1000 threads, then you\nhave necessarily 1000 stacks.  For each vma, you need to check if it\ncorresponds to a thread's stack.  With a large number of threads, this can take\na very long time. I have seen latencies >> 10mn.\n\nAs of today, perf does not use the fact that a mapping is a stack, therefore we\ncan work around the issue by using /proc/pid/tasks/pid/maps.  This entry does\nnot try to map a vma to stack and is thus much faster with no loss of\nfunctonality.\n\nThe proc-map-timeout logic is kept in case users still want some upper limit.\n\nIn V2, we fix the file path from /proc/pid/tasks/pid/maps to actual\n/proc/pid/task/pid/maps, tasks -> task.  Thanks Arnaldo for catching this.\n\nCommitter note:\n\nThis problem seems to have been elliminated in the kernel since commit :\nb18cb64ead40 (\"fs/proc: Stop trying to report thread stacks\").\n\nSigned-off-by: Stephane Eranian <eranian@google.com>\nAcked-by: Jiri Olsa <jolsa@redhat.com>\nCc: Andy Lutomirski <luto@kernel.org>\nCc: Namhyung Kim <namhyung@kernel.org>\nCc: Peter Zijlstra <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/20170315135059.GC2177@redhat.com\nLink: http://lkml.kernel.org/r/1489598233-25586-1-git-send-email-eranian@google.com\nSigned-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ndrivers: net: xgene: Fix hardware checksum setting\n\n[ Upstream commit e026e700d940a1ea3d3bc84d92ac668b1f015462 ]\n\nThis patch fixes the hardware checksum settings by properly program\nthe classifier. Otherwise, packet may be received with checksum error\non X-Gene1 SoC.\n\nSigned-off-by: Quan Nguyen <qnguyen@apm.com>\nSigned-off-by: Iyappan Subramanian <isubramanian@apm.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ndrm: Defer disabling the vblank IRQ until the next interrupt (for instant-off)\n\n[ Upstream commit 608b20506941969ea30d8c08dc9ae02bb87dbf7d ]\n\nOn vblank instant-off systems, we can get into a situation where the cost\nof enabling and disabling the vblank IRQ around a drmWaitVblank query\ndominates. And with the advent of even deeper hardware sleep state,\ntouching registers becomes ever more expensive.  However, we know that if\nthe user wants the current vblank counter, they are also very likely to\nimmediately queue a vblank wait and so we can keep the interrupt around\nand only turn it off if we have no further vblank requests queued within\nthe interrupt interval.\n\nAfter vblank event delivery, this patch adds a shadow of one vblank where\nthe interrupt is kept alive for the user to query and queue another vblank\nevent. Similarly, if the user is using blocking drmWaitVblanks, the\ninterrupt will be disabled on the IRQ following the wait completion.\nHowever, if the user is simply querying the current vblank counter and\ntimestamp, the interrupt will be disabled after every IRQ and the user\nwill enabled it again on the first query following the IRQ.\n\nv2: Mario Kleiner -\nAfter testing this, one more thing that would make sense is to move\nthe disable block at the end of drm_handle_vblank() instead of at the\ntop.\n\nTurns out that if high precision timestaming is disabled or doesn't\nwork for some reason (as can be simulated by echo 0 >\n/sys/module/drm/parameters/timestamp_precision_usec), then with your\ndelayed disable code at its current place, the vblank counter won't\nincrement anymore at all for instant queries, ie. with your other\n\"instant query\" patches. Clients which repeatedly query the counter\nand wait for it to progress will simply hang, spinning in an endless\nquery loop. There's that comment in vblank_disable_and_save:\n\n\"* Skip this step if there isn't any high precision timestamp\n * available. In that case we can't account for this and just\n * hope for the best.\n */\n\nWith the disable happening after leading edge of vblank (== hw counter\nincrement already happened) but before the vblank counter/timestamp\nhandling in drm_handle_vblank, that step is needed to keep the counter\nprogressing, so skipping it is bad.\n\nNow without high precision timestamping support, a kms driver must not\nset dev->vblank_disable_immediate = true, as this would cause problems\nfor clients, so this shouldn't matter, but it would be good to still\nmake this robust against a future kms driver which might have\nunreliable high precision timestamping, e.g., high precision\ntimestamping that intermittently doesn't work.\n\nv3: Patch before coffee needs extra coffee.\n\nTestcase: igt/kms_vblank\nSigned-off-by: Chris Wilson <chris@chris-wilson.co.uk>\nCc: Ville Syrjälä <ville.syrjala@linux.intel.com>\nCc: Daniel Vetter <daniel@ffwll.ch>\nCc: Michel Dänzer <michel@daenzer.net>\nCc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nCc: Dave Airlie <airlied@redhat.com>,\nCc: Mario Kleiner <mario.kleiner.de@gmail.com>\nReviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>\nSigned-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>\nLink: http://patchwork.freedesktop.org/patch/msgid/20170315204027.20160-1-chris@chris-wilson.co.uk\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nath10k: disallow DFS simulation if DFS channel is not enabled\n\n[ Upstream commit ca07baab0b1e627ae1d4a55d190fb1c9d32a3445 ]\n\nIf DFS is not enabled in hostapd (ieee80211h=0) DFS channels shall\nnot be available for use even though the hardware may have the capability\nto support DFS. With this configuration (DFS disabled in hostapd) trying to\nbring up ath10k device in DFS channel for AP mode fails and trying to\nsimulate DFS in ath10k debugfs results in a warning in cfg80211 complaining\ninvalid channel and this should be avoided in the driver itself rather than\nfalse propogating RADAR detection to mac80211/cfg80211. Fix this by\nchecking for the first vif 'is_started' state(should work for client mode\nas well) as all the vifs shall be configured for the same channel\n\nsys/kernel/debug/ieee80211/phy1/ath10k# echo 1 > dfs_simulate_radar\n\nWARNING: at net/wireless/chan.c:265 cfg80211_radar_event+0x24/0x60\nWorkqueue: phy0 ieee80211_dfs_radar_detected_work [mac80211]\n[<c022f2d4>] (warn_slowpath_null) from\n[<bf72dab8>] (cfg80211_radar_event+0x24/0x60 [cfg80211])\n[<bf72dab8>] (cfg80211_radar_event [cfg80211]) from\n[<bf7813e0>] (ieee80211_dfs_radar_detected_work+0x94/0xa0 [mac80211])\n[<bf7813e0>] (ieee80211_dfs_radar_detected_work [mac80211]) from\n[<c0242320>] (process_one_work+0x20c/0x32c)\n\nWARNING: at net/wireless/nl80211.c:2488 nl80211_get_mpath+0x13c/0x4cc\n Workqueue: phy0 ieee80211_dfs_radar_detected_work [mac80211]\n[<c022f2d4>] (warn_slowpath_null) from\n[<bf72dab8>] (cfg80211_radar_event+0x24/0x60 [cfg80211])\n[<bf72dab8>] (cfg80211_radar_event [cfg80211]) from\n[<bf7813e0>] (ieee80211_dfs_radar_detected_work+0x94/0xa0 [mac80211])\n[<bf7813e0>] (ieee80211_dfs_radar_detected_work [mac80211]) from\n[<c0242320>] (process_one_work+0x20c/0x32c)\n\nSigned-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>\nSigned-off-by: Kalle Valo <kvalo@qca.qualcomm.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nperf probe: Return errno when not hitting any event\n\n[ Upstream commit 70946723eeb859466f026274b29c6196e39149c4 ]\n\nOn old perf, when using 'perf probe -d' to delete an inexistent event,\nit returns errno, eg,\n\n  -bash-4.3# perf probe -d xxx  || echo $?\n  Info: Event \"*:xxx\" does not exist.\n    Error: Failed to delete events.\n  255\n\nBut now perf_del_probe_events() will always set ret = 0, different from\nprevious del_perf_probe_events(). After this, it returns errno again,\neg,\n\n  -bash-4.3# ./perf probe -d xxx  || echo $?\n  \"xxx\" does not hit any event.\n    Error: Failed to delete events.\n  254\n\nAnd it is more appropriate to return -ENOENT instead of -EPERM.\n\nSigned-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>\nAcked-by: Masami Hiramatsu <mhiramat@kernel.org>\nCc: Hanjun Guo <guohanjun@huawei.com>\nCc: Jiri Olsa <jolsa@kernel.org>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Wang Nan <wangnan0@huawei.com>\nFixes: dddc7ee32fa1 (\"perf probe: Fix an error when deleting probes successfully\")\nLink: http://lkml.kernel.org/r/1489738592-61011-1-git-send-email-wangkefeng.wang@huawei.com\nSigned-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nHID: clamp input to logical range if no null state\n\n[ Upstream commit c3883fe06488a483658ba5d849b70e49bee15e7c ]\n\nThis patch fixes an issue in drivers/hid/hid-input.c where values\noutside of the logical range are not clamped when \"null state\" bit of\nthe input control is not set.\n\nThis was discussed on the lists [1] and this change stems from the fact\ndue to the ambiguity of the HID specification it might be appropriate to\nfollow Microsoft's own interpretation of the specification. As noted in\nMicrosoft's documentation [2] in the section titled \"Required HID usages\nfor digitizers\" it is noted that values reported outside the logical\nrange \"will be considered as invalid data and the value will be changed\nto the nearest boundary value (logical min/max).\"\n\nThis patch fixes an issue where the (1292:4745) Innomedia INNEX\nGENESIS/ATARI reports out of range values for its X and Y axis of the\nDPad which, due to the null state bit being unset, are forwarded to\nuserspace as is. Now these values will get clamped to the logical range\nbefore being forwarded to userspace. This device was also used to test\nthis patch.\n\nThis patch expands on commit 3f3752705dbd (\"HID: reject input outside\nlogical range only if null state is set\").\n\n[1]: http://lkml.kernel.org/r/20170307131036.GA853@gaia.local\n[2]: https://msdn.microsoft.com/en-us/library/windows/hardware/dn672278(v=vs.85).asp\n\nSigned-off-by: Tomasz Kramkowski <tk@the-tk.com>\nAcked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>\nSigned-off-by: Jiri Kosina <jkosina@suse.cz>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nnet/8021q: create device with all possible features in wanted_features\n\n[ Upstream commit 88997e4208aea117627898e5f6f9801cf3cd42d2 ]\n\nwanted_features is a set of features which have to be enabled if a\nhardware allows that.\n\nCurrently when a vlan device is created, its wanted_features is set to\ncurrent features of its base device.\n\nThe problem is that the base device can get new features and they are\nnot propagated to vlan-s of this device.\n\nIf we look at bonding devices, they doesn't have this problem and this\npatch suggests to fix this issue by the same way how it works for bonding\ndevices.\n\nWe meet this problem, when we try to create a vlan device over a bonding\ndevice. When a system are booting, real devices require time to be\ninitialized, so bonding devices created without slaves, then vlan\ndevices are created and only then ethernet devices are added to the\nbonding device. As a result we have vlan devices with disabled\nscatter-gather.\n\n* create a bonding device\n  $ ip link add bond0 type bond\n  $ ethtool -k bond0 | grep scatter\n  scatter-gather: off\n\ttx-scatter-gather: off [requested on]\n\ttx-scatter-gather-fraglist: off [requested on]\n\n* create a vlan device\n  $ ip link add link bond0 name bond0.10 type vlan id 10\n  $ ethtool -k bond0.10 | grep scatter\n  scatter-gather: off\n\ttx-scatter-gather: off\n\ttx-scatter-gather-fraglist: off\n\n* Add a slave device to bond0\n  $ ip link set dev eth0 master bond0\n\nAnd now we can see that the bond0 device has got the scatter-gather\nfeature, but the bond0.10 hasn't got it.\n[root@laptop linux-task-diag]# ethtool -k bond0 | grep scatter\nscatter-gather: on\n\ttx-scatter-gather: on\n\ttx-scatter-gather-fraglist: on\n[root@laptop linux-task-diag]# ethtool -k bond0.10 | grep scatter\nscatter-gather: off\n\ttx-scatter-gather: off\n\ttx-scatter-gather-fraglist: off\n\nWith this patch the vlan device will get all new features from the\nbonding device.\n\nHere is a call trace how features which are set in this patch reach\ndev->wanted_features.\n\nregister_netdevice\n   vlan_dev_init\n\t...\n\tdev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG |\n\t\t       NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE |\n\t\t       NETIF_F_HIGHDMA | NETIF_F_SCTP_CRC |\n\t\t       NETIF_F_ALL_FCOE;\n\n\tdev->features |= dev->hw_features;\n\t...\n    dev->wanted_features = dev->features & dev->hw_features;\n    __netdev_update_features(dev);\n        vlan_dev_fix_features\n\t   ...\n\nCc: Alexey Kuznetsov <kuznet@virtuozzo.com>\nCc: Patrick McHardy <kaber@trash.net>\nCc: \"David S. Miller\" <davem@davemloft.net>\nSigned-off-by: Andrei Vagin <avagin@openvz.org>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nARM: dts: Adjust moxart IRQ controller and flags\n\n[ Upstream commit c2a736b698008d296c5010ec39077eeb5796109f ]\n\nThe moxart interrupt line flags were not respected in previous\ndriver: instead of assigning them per-consumer, a fixes mask\nwas set in the controller.\n\nWith the migration to a standard Faraday driver we need to\nset up and handle the consumer flags correctly. Also remove\nthe Moxart-specific flags when switching to using real consumer\nflags.\n\nExtend the register window to 0x100 bytes as we may have a few\nmore registers in there and it doesn't hurt.\n\nTested-by: Jonas Jensen <jonas.jensen@gmail.com>\nSigned-off-by: Jonas Jensen <jonas.jensen@gmail.com>\nSigned-off-by: Linus Walleij <linus.walleij@linaro.org>\nSigned-off-by: Olof Johansson <olof@lixom.net>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nbatman-adv: handle race condition for claims between gateways\n\n[ Upstream commit a3a5129e122709306cfa6409781716c2933df99b ]\n\nConsider the following situation which has been found in a test setup:\nGateway B has claimed client C and gateway A has the same backbone\nnetwork as B. C sends a broad- or multicast to B and directly after\nthis packet decides to send another packet to A due to a better TQ\nvalue. B will forward the broad-/multicast into the backbone as it is\nthe responsible gw and after that A will claim C as it has been\nchosen by C as the best gateway. If it now happens that A claims C\nbefore it has received the broad-/multicast forwarded by B (due to\nbackbone topology or due to some delay in B when forwarding the\npacket) we get a critical situation: in the current code A will\nimmediately unclaim C when receiving the multicast due to the\nroaming client scenario although the position of C has not changed\nin the mesh. If this happens the multi-/broadcast forwarded by B\nwill be sent back into the mesh by A and we have looping packets\nuntil one of the gateways claims C again.\nIn order to prevent this, unclaiming of a client due to the roaming\nclient scenario is only done after a certain time is expired after\nthe last claim of the client. 100 ms are used here, which should be\nslow enough for big backbones and slow gateways but fast enough not\nto break the roaming client use case.\n\nAcked-by: Simon Wunderlich <sw@simonwunderlich.de>\nSigned-off-by: Andreas Pape <apape@phoenixcontact.com>\n[sven@narfation.org: fix conflicts with current version]\nSigned-off-by: Sven Eckelmann <sven@narfation.org>\nSigned-off-by: Simon Wunderlich <sw@simonwunderlich.de>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nof: fix of_device_get_modalias returned length when truncating buffers\n\n[ Upstream commit bcf54d5385abaea9c8026aae6f4eeb348671a52d ]\n\nIf the length of the modalias is greater than the buffer size, then the\nmodalias is truncated. However the untruncated length is returned which\nwill cause an error. Fix this to return the truncated length. If an error\nin the case was desired, then then we should just return -ENOMEM.\n\nThe reality is no device will ever have 4KB of compatible strings to hit\nthis case.\n\nSigned-off-by: Rob Herring <robh@kernel.org>\nCc: Frank Rowand <frowand.list@gmail.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nsolo6x10: release vb2 buffers in solo_stop_streaming()\n\n[ Upstream commit 6e4c8480bd2eb95309ad3c875e11d2cad98f9188 ]\n\nFixes warning that appears in dmesg after closing V4L2 userspace\napplication that plays video from the display device\n(first device from V4L2 device nodes provided by solo, usually /dev/video0\nwhen no other V4L2 devices are present). Encoder device nodes are not\naffected. Can be reproduced by starting and closing\n\nffplay -f video4linux2  /dev/video0\n\n[ 8130.281251] ------------[ cut here ]------------\n[ 8130.281256] WARNING: CPU: 1 PID: 20414 at drivers/media/v4l2-core/videobuf2-core.c:1651 __vb2_queue_cancel+0x14b/0x230\n[ 8130.281257] Modules linked in: ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat solo6x10 x86_pkg_temp_thermal vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O)\n[ 8130.281264] CPU: 1 PID: 20414 Comm: ffplay Tainted: G           O    4.10.0-gentoo #1\n[ 8130.281264] Hardware name: ASUS All Series/B85M-E, BIOS 2301 03/30/2015\n[ 8130.281265] Call Trace:\n[ 8130.281267]  dump_stack+0x4f/0x72\n[ 8130.281270]  __warn+0xc7/0xf0\n[ 8130.281271]  warn_slowpath_null+0x18/0x20\n[ 8130.281272]  __vb2_queue_cancel+0x14b/0x230\n[ 8130.281273]  vb2_core_streamoff+0x23/0x90\n[ 8130.281275]  vb2_streamoff+0x24/0x50\n[ 8130.281276]  vb2_ioctl_streamoff+0x3d/0x50\n[ 8130.281278]  v4l_streamoff+0x15/0x20\n[ 8130.281279]  __video_do_ioctl+0x25e/0x2f0\n[ 8130.281280]  video_usercopy+0x279/0x520\n[ 8130.281282]  ? v4l_enum_fmt+0x1330/0x1330\n[ 8130.281285]  ? unmap_region+0xdf/0x110\n[ 8130.281285]  video_ioctl2+0x10/0x20\n[ 8130.281286]  v4l2_ioctl+0xce/0xe0\n[ 8130.281289]  do_vfs_ioctl+0x8b/0x5b0\n[ 8130.281290]  ? __fget+0x72/0xa0\n[ 8130.281291]  SyS_ioctl+0x74/0x80\n[ 8130.281294]  entry_SYSCALL_64_fastpath+0x13/0x94\n[ 8130.281295] RIP: 0033:0x7ff86fee6b27\n[ 8130.281296] RSP: 002b:00007ffe467f6a08 EFLAGS: 00000246 ORIG_RAX: 0000000000000010\n[ 8130.281297] RAX: ffffffffffffffda RBX: 00000000d1a4d788 RCX: 00007ff86fee6b27\n[ 8130.281297] RDX: 00007ffe467f6a14 RSI: 0000000040045613 RDI: 0000000000000006\n[ 8130.281298] RBP: 000000000373f8d0 R08: 00000000ffffffff R09: 00007ff860001140\n[ 8130.281298] R10: 0000000000000243 R11: 0000000000000246 R12: 0000000000000000\n[ 8130.281299] R13: 00000000000000a0 R14: 00007ffe467f6530 R15: 0000000001f32228\n[ 8130.281300] ---[ end trace 00695dc96be646e7 ]---\n\nSigned-off-by: Anton Sviridenko <anton@corp.bluecherry.net>\nSigned-off-by: Hans Verkuil <hans.verkuil@cisco.com>\nSigned-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nscsi: ipr: Fix missed EH wakeup\n\n[ Upstream commit 66a0d59cdd12546ddf01d229de28b07ccf6d637f ]\n\nFollowing a command abort or device reset, ipr's EH handlers wait for\nthe commands getting aborted to get sent back from the adapter prior to\nreturning from the EH handler. This fixes up some cases where the\ncompletion handler was not getting called, which would have resulted in\nthe EH thread waiting until it timed out, greatly extending EH time.\n\nSigned-off-by: Brian King <brking@linux.vnet.ibm.com>\nReviewed-by: Wendy Xiong <wenxiong@linux.vnet.ibm.com>\nTested-by: Wendy Xiong <wenxiong@linux.vnet.ibm.com>\nSigned-off-by: Martin K. Petersen <martin.petersen@oracle.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nmedia: i2c/soc_camera: fix ov6650 sensor getting wrong clock\n\n[ Upstream commit 54449af0e0b2ea43a8166611c95b730c850c3184 ]\n\nAfter changes to v4l2_clk API introduced in v4.1 by commits a37462b919\n'[media] V4L: remove clock name from v4l2_clk API' and 4f528afcfb\n'[media] V4L: add CCF support to the v4l2_clk API', ov6650 sensor\nstopped responding because v4l2_clk_get(), still called with\ndepreciated V4L2 clock name \"mclk\", started to return respective CCF\nclock instead of the V4l2 one registered by soc_camera. Fix it by\ncalling v4l2_clk_get() with NULL clock name.\n\nCreated and tested on Amstrad Delta against Linux-4.7-rc3 with\nomap1_camera fixes.\n\nSigned-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>\nSigned-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>\nSigned-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ntimers, sched_clock: Update timeout for clock wrap\n\n[ Upstream commit 1b8955bc5ac575009835e371ae55e7f3af2197a9 ]\n\nThe scheduler clock framework may not use the correct timeout for the clock\nwrap. This happens when a new clock driver calls sched_clock_register()\nafter the kernel called sched_clock_postinit(). In this case the clock wrap\ntimeout is too long thus sched_clock_poll() is called too late and the clock\nalready wrapped.\n\nOn my ARM system the scheduler was no longer scheduling any other task than\nthe idle task because the sched_clock() wrapped.\n\nSigned-off-by: David Engraf <david.engraf@sysgo.com>\nSigned-off-by: John Stultz <john.stultz@linaro.org>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nsysrq: Reset the watchdog timers while displaying high-resolution timers\n\n[ Upstream commit 0107042768658fea9f5f5a9c00b1c90f5dab6a06 ]\n\nOn systems with a large number of CPUs, running sysrq-<q> can cause\nwatchdog timeouts.  There are two slow sections of code in the sysrq-<q>\npath in timer_list.c.\n\n1. print_active_timers() - This function is called by print_cpu() and\n   contains a slow goto loop.  On a machine with hundreds of CPUs, this\n   loop took approximately 100ms for the first CPU in a NUMA node.\n   (Subsequent CPUs in the same node ran much quicker.)  The total time\n   to print all of the CPUs is ultimately long enough to trigger the\n   soft lockup watchdog.\n\n2. print_tickdevice() - This function outputs a large amount of textual\n   information.  This function also took approximately 100ms per CPU.\n\nSince sysrq-<q> is not a performance critical path, there should be no\nharm in touching the nmi watchdog in both slow sections above.  Touching\nit in just one location was insufficient on systems with hundreds of\nCPUs as occasional timeouts were still observed during testing.\n\nThis issue was observed on an Oracle T7 machine with 128 CPUs, but I\nanticipate it may affect other systems with similarly large numbers of\nCPUs.\n\nSigned-off-by: Tom Hromatka <tom.hromatka@oracle.com>\nReviewed-by: Rob Gardner <rob.gardner@oracle.com>\nSigned-off-by: John Stultz <john.stultz@linaro.org>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nInput: qt1070 - add OF device ID table\n\n[ Upstream commit cf5cd9d4480a87da78768718cac194a71079b5cb ]\n\nThe driver doesn't have a struct of_device_id table but supported devices\nare registered via Device Trees. This is working on the assumption that a\nI2C device registered via OF will always match a legacy I2C device ID and\nthat the MODALIAS reported will always be of the form i2c:<device>.\n\nBut this could change in the future so the correct approach is to have an\nOF device ID table if the devices are registered via OF.\n\nThe compatible strings don't have a vendor prefix because that's how it's\nused currently, and changing this will be a Device Tree ABI break.\n\nSigned-off-by: Javier Martinez Canillas <javier@osg.samsung.com>\nSigned-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nsched: act_csum: don't mangle TCP and UDP GSO packets\n\n[ Upstream commit add641e7dee31b36aee83412c29e39dd1f5e0c9c ]\n\nafter act_csum computes the checksum on skbs carrying GSO TCP/UDP packets,\nsubsequent segmentation fails because skb_needs_check(skb, true) returns\ntrue. Because of that, skb_warn_bad_offload() is invoked and the following\nmessage is displayed:\n\nWARNING: CPU: 3 PID: 28 at net/core/dev.c:2553 skb_warn_bad_offload+0xf0/0xfd\n<...>\n\n  [<ffffffff8171f486>] skb_warn_bad_offload+0xf0/0xfd\n  [<ffffffff8161304c>] __skb_gso_segment+0xec/0x110\n  [<ffffffff8161340d>] validate_xmit_skb+0x12d/0x2b0\n  [<ffffffff816135d2>] validate_xmit_skb_list+0x42/0x70\n  [<ffffffff8163c560>] sch_direct_xmit+0xd0/0x1b0\n  [<ffffffff8163c760>] __qdisc_run+0x120/0x270\n  [<ffffffff81613b3d>] __dev_queue_xmit+0x23d/0x690\n  [<ffffffff81613fa0>] dev_queue_xmit+0x10/0x20\n\nSince GSO is able to compute checksum on individual segments of such skbs,\nwe can simply skip mangling the packet.\n\nSigned-off-by: Davide Caratti <dcaratti@redhat.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nASoC: rcar: ssi: don't set SSICR.CKDV = 000 with SSIWSR.CONT\n\n[ Upstream commit 6b8530cc056efd4a11b034ca5b1e9f7e9563f553 ]\n\nR-Car Datasheet is indicating \"SSICR.CKDV = 000 is invalid when\nSSIWSR.WS_MODE = 1 or SSIWSR.CONT = 1\".\nCurrent driver will set CONT, thus, we shouldn't use CKDV = 000.\nThis patch fixup it.\n\nReported-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>\nSigned-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>\nTested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>\nSigned-off-by: Mark Brown <broonie@kernel.org>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nspi: omap2-mcspi: poll OMAP2_MCSPI_CHSTAT_RXS for PIO transfer\n\n[ Upstream commit 812613591cb652344186c4cd912304ed02138566 ]\n\nWhen running the spi-loopback-test with slower clock rate like 10 KHz,\nthe test for 251 bytes transfer was failed.  This failure triggered an\nspi-omap2-mcspi's error message \"DMA RX last word empty\".\n\nThis message means that PIO for reading the remaining bytes due to the\nDMA transfer length reduction is failed.  This problem can be fixed by\npolling OMAP2_MCSPI_CHSTAT_RXS bit in channel status register to wait\nuntil the receive buffer register is filled.\n\nCc: Mark Brown <broonie@kernel.org>\nSigned-off-by: Akinobu Mita <akinobu.mita@gmail.com>\nSigned-off-by: Mark Brown <broonie@kernel.org>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ntcp: sysctl: Fix a race to avoid unexpected 0 window from space\n\n[ Upstream commit c48367427a39ea0b85c7cf018fe4256627abfd9e ]\n\nBecause sysctl_tcp_adv_win_scale could be changed any time, so there\nis one race in tcp_win_from_space.\nFor example,\n1.sysctl_tcp_adv_win_scale<=0 (sysctl_tcp_adv_win_scale is negative now)\n2.space>>(-sysctl_tcp_adv_win_scale) (sysctl_tcp_adv_win_scale is postive now)\n\nAs a result, tcp_win_from_space returns 0. It is unexpected.\n\nCertainly if the compiler put the sysctl_tcp_adv_win_scale into one\nregister firstly, then use the register directly, it would be ok.\nBut we could not depend on the compiler behavior.\n\nSigned-off-by: Gao Feng <fgao@ikuai8.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ndmaengine: imx-sdma: add 1ms delay to ensure SDMA channel is stopped\n\n[ Upstream commit 7f3ff14b7eb1ffad132117f08a1973b48e653d43 ]\n\nsdma_disable_channel() cannot ensure dma is stopped to access\nmodule's FIFOs. There is chance SDMA core is running and accessing\nBD when disable of corresponding channel, this may cause sometimes\neven after call of .sdma_disable_channel(), SDMA core still be\nrunning and accessing module's FIFOs.\n\nAccording to NXP R&D team a delay of one BD SDMA cost time (maximum\nis 1ms) should be added after disable of the channel bit, to ensure\nSDMA core has really been stopped after SDMA clients call\n.device_terminate_all.\n\nThis patch introduces adds a new function sdma_disable_channel_with_delay()\nwhich simply adds 1ms delay after call sdma_disable_channel(),\nand set it as .device_terminate_all.\n\nSigned-off-by: Jiada Wang <jiada_wang@mentor.com>\nSigned-off-by: Vinod Koul <vinod.koul@intel.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ndriver: (adm1275) set the m,b and R coefficients correctly for power\n\n[ Upstream commit 6faecba0b3da7b617bf72bef422bf0d3bb6dfe7d ]\n\nSeems like coefficient values for m, b and R under power have been\nput in the wrong order. Rearranging them properly to get correct\nvalues of coefficients for power.\n\nFor specs, please refer to table 7 (page 35) on\nhttp://www.analog.com/media/en/technical-documentation/data-sheets/ADM1075.pdf\n\nFixes: 904b296f308d (\"hwmon: (adm1275) Introduce configuration data structure for coeffcients\")\nSigned-off-by: Shikhar Dogra <shidogra@cisco.com>\nSigned-off-by: Guenter Roeck <linux@roeck-us.net>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nmm: Fix false-positive VM_BUG_ON() in page_cache_{get,add}_speculative()\n\n[ Upstream commit 591a3d7c09fa08baff48ad86c2347dbd28a52753 ]\n\n0day testing by Fengguang Wu triggered this crash while running Trinity:\n\n  kernel BUG at include/linux/pagemap.h:151!\n  ...\n  CPU: 0 PID: 458 Comm: trinity-c0 Not tainted 4.11.0-rc2-00251-g2947ba0 #1\n  ...\n  Call Trace:\n   __get_user_pages_fast()\n   get_user_pages_fast()\n   get_futex_key()\n   futex_requeue()\n   do_futex()\n   SyS_futex()\n   do_syscall_64()\n   entry_SYSCALL64_slow_path()\n\nIt' VM_BUG_ON() due to false-negative in_atomic(). We call\npage_cache_get_speculative() with disabled local interrupts.\nIt should be atomic enough.\n\nSo let's check for disabled interrupts in the VM_BUG_ON() condition\ntoo, to resolve this.\n\n( This got triggered by the conversion of the x86 GUP code to the\n  generic GUP code. )\n\nReported-by: Fengguang Wu <fengguang.wu@intel.com>\nSigned-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>\nCc: Kirill A. Shutemov <kirill@shutemov.name>\nCc: LKP <lkp@01.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: linux-mm@kvack.org\nLink: http://lkml.kernel.org/r/20170324114709.pcytvyb3d6ajux33@black.fi.intel.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nblk-throttle: make sure expire time isn't too big\n\n[ Upstream commit 06cceedcca67a93ac7f7aa93bbd9980c7496d14e ]\n\ncgroup could be throttled to a limit but when all cgroups cross high\nlimit, queue enters a higher state and so the group should be throttled\nto a higher limit. It's possible the cgroup is sleeping because of\nthrottle and other cgroups don't dispatch IO any more. In this case,\nnobody can trigger current downgrade/upgrade logic. To fix this issue,\nwe could either set up a timer to wakeup the cgroup if other cgroups are\nidle or make sure this cgroup doesn't sleep too long. Setting up a timer\nmeans we must change the timer very frequently. This patch chooses the\nlatter. Making cgroup sleep time not too big wouldn't change cgroup\nbps/iops, but could make it wakeup more frequently, which isn't a big\nissue because throtl_slice * 8 is already quite big.\n\nSigned-off-by: Shaohua Li <shli@fb.com>\nSigned-off-by: Jens Axboe <axboe@fb.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nf2fs: relax node version check for victim data in gc\n\n[ Upstream commit c13ff37e359bb3eacf4e1760dcea8d9760aa7459 ]\n\n- has_not_enough_free_secs\nnode_secs: 0  dent_secs: 0  freed:0  free_segments:103  reserved:104\n\n          - f2fs_gc\n             - get_victim_by_default\nalloc_mode 0, gc_mode 1, max_search 2672, offset 4654, ofs_unit 1\n\n                - do_garbage_collect\nstart_segno 3976, end_segno 3977   type 0\n\n                  - is_alive\nnid 22797, blkaddr 2131882, ofs_in_node 0, version 0x8/0x0\n\n                   - gc_data_segment 766, segno 3976, block 512/426 not alive\n\nSo, this patch fixes subtle corrupted case where node version does not match\nto summary version which results in infinite loop by gc.\n\nReported-by: Yunlei He <heyunlei@huawei.com>\nSigned-off-by: Jaegeuk Kim <jaegeuk@kernel.org>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nbonding: refine bond_fold_stats() wrap detection\n\n[ Upstream commit 142c6594acbcc32391af9c15f8cd65c6c177698f ]\n\nSome device drivers reset their stats at down/up events, possibly\nfooling bonding stats, since they operate with relative deltas.\n\nIt is nearly not possible to fix drivers, since some of them compute the\ntx/rx counters based on per rx/tx queue stats, and the queues can be\nreconfigured (ethtool -L) between the down/up sequence.\n\nLets avoid accumulating 'negative' values that render bonding stats\nuseless.\n\nIt is better to lose small deltas, assuming the bonding stats are\nfetched at a reasonable frequency.\n\nFixes: 5f0c5f73e5ef (\"bonding: make global bonding stats more reliable\")\nSigned-off-by: Eric Dumazet <edumazet@google.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nbraille-console: Fix value returned by _braille_console_setup\n\n[ Upstream commit 2ed2b8621be2708c0f6d61fe9841e9ad8b9753f0 ]\n\ncommit bbeddf52adc1 (\"printk: move braille console support into\nseparate braille.[ch] files\") introduced _braille_console_setup()\nto outline the braille initialization code.  There was however some\nconfusion over the value it was supposed to return. commit 2cfe6c4ac7ee\n(\"printk: Fix return of braille_register_console()\") tried to fix it\nbut failed to.\n\nThis fixes and documents the returned value according to the use\nin printk.c: non-zero return means a parsing error, and thus this\nconsole configuration should be ignored.\n\nSigned-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>\nCc: Aleksey Makarov <aleksey.makarov@linaro.org>\nCc: Joe Perches <joe@perches.com>\nCc: Ming Lei <ming.lei@canonical.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\nAcked-by: Petr Mladek <pmladek@suse.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ndrm/vmwgfx: Fixes to vmwgfx_fb\n\n[ Upstream commit aa74f0687cfe998e59b20d6454f45e8aa4403c45 ]\n\n1.  When unsetting a mode, num_connector should be set to zero\n2.  The pixel_format field needs to be initialized as newer DRM internal\n    functions checks this field\n3.  Take the drm_modeset_lock_all() because vmw_fb_kms_detach() can\n    change current mode\n\nSigned-off-by: Sinclair Yeh <syeh@vmware.com>\nReviewed-by: Thomas Hellstrom <thellstrom@vmware.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nvxlan: vxlan dev should inherit lowerdev's gso_max_size\n\n[ Upstream commit d6acfeb17d030bb3907e77c048b0e7783ad8e5a9 ]\n\nvxlan dev currently ignores lowerdev's gso_max_size, which adversely\naffects TSO performance of liquidio if it's the lowerdev.  Egress TCP\npackets' skb->len often exceed liquidio's advertised gso_max_size.  This\nmay happen on other NIC drivers.\n\nFix it by assigning lowerdev's gso_max_size to that of vxlan dev.  Might as\nwell do likewise for gso_max_segs.\n\nSingle flow TSO throughput of liquidio as lowerdev (using iperf3):\n\n    Before the patch:    139 Mbps\n    After the patch :   8.68 Gbps\n    Percent increase:  6,144 %\n\nSigned-off-by: Felix Manlunas <felix.manlunas@cavium.com>\nSigned-off-by: Satanand Burla <satananda.burla@cavium.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nNFC: nfcmrvl: Include unaligned.h instead of access_ok.h\n\n[ Upstream commit d916d923724d59cde99ee588f15eec59dd863bbd ]\n\nIncluding linux/unaligned/access_ok.h causes the allmodconfig build on\nia64 (and maybe others) to fail with the following warnings:\n\ninclude/linux/unaligned/access_ok.h:7:19: error: redefinition of 'get_unaligned_le16'\ninclude/linux/unaligned/access_ok.h:12:19: error: redefinition of 'get_unaligned_le32'\ninclude/linux/unaligned/access_ok.h:17:19: error: redefinition of 'get_unaligned_le64'\ninclude/linux/unaligned/access_ok.h:22:19: error: redefinition of 'get_unaligned_be16'\ninclude/linux/unaligned/access_ok.h:27:19: error: redefinition of 'get_unaligned_be32'\ninclude/linux/unaligned/access_ok.h:32:19: error: redefinition of 'get_unaligned_be64'\ninclude/linux/unaligned/access_ok.h:37:20: error: redefinition of 'put_unaligned_le16'\ninclude/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_le32'\ninclude/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_le64'\ninclude/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_be16'\ninclude/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_be32'\ninclude/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_be64'\n\nFix these by including asm/unaligned.h instead and leave it up to the\narchitecture to decide how to implement unaligned accesses.\n\nFixes: 3194c6870158 (\"NFC: nfcmrvl: add firmware download support\")\nReported-by: kbuild test robot <fengguang.wu@intel.com>\nLink: https://lkml.org/lkml/2016/10/22/247\nCc: Vincent Cuissard <cuissard@marvell.com>\nSigned-off-by: Tobias Klauser <tklauser@distanz.ch>\nSigned-off-by: Samuel Ortiz <sameo@linux.intel.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nNFC: nfcmrvl: double free on error path\n\n[ Upstream commit ca42fb9e52d155547e6cf18cf26bce3e1a6af4ea ]\n\nThe nci_spi_send() function calls kfree_skb(skb) on both error and\nsuccess so this extra kfree_skb() is a double free.\n\nFixes: caf6e49bf6d0 (\"NFC: nfcmrvl: add spi driver\")\nSigned-off-by: Dan Carpenter <dan.carpenter@oracle.com>\nSigned-off-by: Samuel Ortiz <sameo@linux.intel.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nARM: dts: r8a7790: Correct parent of SSI[0-9] clocks\n\n[ Upstream commit d13d4e063d4a08eb1686e890e9183dde709871bf ]\n\nThe SSI-ALL gate clock is located in between the P clock and the\nindividual SSI[0-9] clocks, hence the former should be listed as their\nparent.\n\nFixes: bcde372254386872 (\"ARM: shmobile: r8a7790: add MSTP10 support on DTSI\")\nSigned-off-by: Geert Uytterhoeven <geert+renesas@glider.be>\nSigned-off-by: Simon Horman <horms+renesas@verge.net.au>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nARM: dts: r8a7791: Correct parent of SSI[0-9] clocks\n\n[ Upstream commit 16fe68dcab5702a024d85229ff7e98979cb701a5 ]\n\nThe SSI-ALL gate clock is located in between the P clock and the\nindividual SSI[0-9] clocks, hence the former should be listed as their\nparent.\n\nFixes: ee9141522dcf13f8 (\"ARM: shmobile: r8a7791: add MSTP10 support on DTSI\")\nSigned-off-by: Geert Uytterhoeven <geert+renesas@glider.be>\nSigned-off-by: Simon Horman <horms+renesas@verge.net.au>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\npowerpc: Avoid taking a data miss on every userspace instruction miss\n\n[ Upstream commit a7a9dcd882a67b68568868b988289fce5ffd8419 ]\n\nEarly on in do_page_fault() we call store_updates_sp(), regardless of\nthe type of exception. For an instruction miss this doesn't make\nsense, because we only use this information to detect if a data miss\nis the result of a stack expansion instruction or not.\n\nWorse still, it results in a data miss within every userspace\ninstruction miss handler, because we try and load the very instruction\nwe are about to install a pte for!\n\nA simple exec microbenchmark runs 6% faster on POWER8 with this fix:\n\n #include <stdlib.h>\n #include <stdio.h>\n #include <unistd.h>\n\nint main(int argc, char *argv[])\n{\n\tunsigned long left = atol(argv[1]);\n\tchar leftstr[16];\n\n\tif (left-- == 0)\n\t\treturn 0;\n\n\tsprintf(leftstr, \"%ld\", left);\n\texeclp(argv[0], argv[0], leftstr, NULL);\n\tperror(\"exec failed\\n\");\n\n\treturn 0;\n}\n\nPass the number of iterations on the command line (eg 10000) and time\nhow long it takes to execute.\n\nSigned-off-by: Anton Blanchard <anton@samba.org>\nSigned-off-by: Michael Ellerman <mpe@ellerman.id.au>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nnet/faraday: Add missing include of of.h\n\n[ Upstream commit d39004ab136ebb6949a7dda9d24376f3d6209295 ]\n\nBreaking the include loop netdevice.h, dsa.h, devlink.h broke this\ndriver, it depends on includes brought in by these headers. Adding\nlinux/of.h fixes it.\n\nFixes: ed0e39e97d34 (\"net: break include loop netdevice.h, dsa.h, devlink.h\")\nSigned-off-by: Andrew Lunn <andrew@lunn.ch>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nARM: dts: koelsch: Correct clock frequency of X2 DU clock input\n\n[ Upstream commit ebf06af55c7594ed1fc18469a5cddf911c40e687 ]\n\nThe X2 crystal oscillator on the Koelsch development board provides a\n74.25 MHz clock, not a 148.5 MHz clock.\n\nFixes: cd21cb46e14aae3a (\"ARM: shmobile: koelsch: Add DU external pixel clocks to DT\")\nSigned-off-by: Geert Uytterhoeven <geert+renesas@glider.be>\nAcked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nTested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>\nSigned-off-by: Simon Horman <horms+renesas@verge.net.au>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nreiserfs: Make cancel_old_flush() reliable\n\n[ Upstream commit 71b0576bdb862e964a82c73327cdd1a249c53e67 ]\n\nCurrently canceling of delayed work that flushes old data using\ncancel_old_flush() does not prevent work from being requeued. Thus\nin theory new work can be queued after cancel_old_flush() from\nreiserfs_freeze() has run. This will become larger problem once\nflush_old_commits() can requeue the work itself.\n\nFix the problem by recording in sbi->work_queue that flushing work is\ncanceled and should not be requeued.\n\nSigned-off-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nALSA: firewire-digi00x: handle all MIDI messages on streaming packets\n\n[ Upstream commit 8820a4cf0cb4cd5c6540a9a18b2cedbdfd5a6891 ]\n\nAt a commit 9dc5d31cdceb (\"ALSA: firewire-digi00x: handle MIDI messages in\nisochronous packets\"), a functionality to handle MIDI messages on\nisochronous packet was supported. But this includes some of my\nmisunderstanding. This commit is to fix them.\n\nFor digi00x series, first data channel of data blocks in rx/tx packet\nincludes MIDI messages. The data channel has 0x80 in 8 bit of its MSB,\nhowever it's against IEC 61883-6. Unique data format is applied:\n - Upper 4 bits of LSB represent port number.\n  - 0x0: port 1.\n  - 0x2: port 2.\n  - 0xe: console port.\n - Lower 4 bits of LSB represent the number of included MIDI message bytes;\n   0x0/0x1/0x2.\n - Two bytes of middle of this data channel have MIDI bytes.\n\nEspecially, MIDI messages from/to console surface are also transferred by\nisochronous packets, as well as physical MIDI ports.\n\nSigned-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>\nSigned-off-by: Takashi Iwai <tiwai@suse.de>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nfm10k: correctly check if interface is removed\n\n[ Upstream commit 540fca35e38d15777b310f450f63f056e63039f5 ]\n\nFM10K_REMOVED expects a hardware address, not a 'struct fm10k_hw'.\n\nFixes: 5cb8db4a4cbc (\"fm10k: Add support for VF\")\nSigned-off-by: Phil Turnbull <phil.turnbull@oracle.com>\nTested-by: Krishneil Singh <krishneil.k.singh@intel.com>\nSigned-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nscsi: ses: don't get power status of SES device slot on probe\n\n[ Upstream commit 75106523f39751390b5789b36ee1d213b3af1945 ]\n\nThe commit 08024885a2a3 (\"ses: Add power_status to SES device slot\")\nintroduced the 'power_status' attribute to enclosure components and\nthe associated callbacks.\n\nThere are 2 callbacks available to get the power status of a device:\n1) ses_get_power_status() for 'struct enclosure_component_callbacks'\n2) get_component_power_status() for the sysfs device attribute\n(these are available for kernel-space and user-space, respectively.)\n\nHowever, despite both methods being available to get power status\non demand, that commit also introduced a call to get power status\nin ses_enclosure_data_process().\n\nThis dramatically increased the total probe time for SCSI devices\non larger configurations, because ses_enclosure_data_process() is\ncalled several times during the SCSI devices probe and loops over\nthe component devices (but that is another problem, another patch).\n\nThat results in a tremendous continuous hammering of SCSI Receive\nDiagnostics commands to the enclosure-services device, which does\ndelay the total probe time for the SCSI devices __significantly__:\n\n  Originally, ~34 minutes on a system attached to ~170 disks:\n\n    [ 9214.490703] mpt3sas version 13.100.00.00 loaded\n    ...\n    [11256.580231] scsi 17:0:177:0: qdepth(16), tagged(1), simple(0),\n                   ordered(0), scsi_level(6), cmd_que(1)\n\n  With this patch, it decreased to ~2.5 minutes -- a 13.6x faster\n\n    [ 1002.992533] mpt3sas version 13.100.00.00 loaded\n    ...\n    [ 1151.978831] scsi 11:0:177:0: qdepth(16), tagged(1), simple(0),\n                   ordered(0), scsi_level(6), cmd_que(1)\n\nBack to the commit discussion.. on the ses_get_power_status() call\nintroduced in ses_enclosure_data_process(): impact of removing it.\n\nThat may possibly be in place to initialize the power status value\non device probe.  However, those 2 functions available to retrieve\nthat value _do_ automatically refresh/update it.  So the potential\nbenefit would be a direct access of the 'power_status' field which\ndoes not use the callbacks...\n\nBut the only reader of 'struct enclosure_component::power_status'\nis the get_component_power_status() callback for sysfs attribute,\nand it _does_ check for and call the .get_power_status callback,\n(which indeed is defined and implemented by that commit), so the\npower status value is, again, automatically updated.\n\nSo, the remaining potential for a direct/non-callback access to\nthe power_status attribute would be out-of-tree modules -- well,\nfor those, if they are for whatever reason interested in values\nthat are set during device probe and not up-to-date by the time\nthey need it.. well, that would be curious.\n\nWell, to handle that more properly, set the initial power state\nvalue to '-1' (i.e., uninitialized) instead of '1' (power 'on'),\nand check for it in that callback which may do an direct access\nto the field value _if_ a callback function is not defined.\n\nSigned-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>\nFixes: 08024885a2a3 (\"ses: Add power_status to SES device slot\")\nReviewed-by: Dan Williams <dan.j.williams@intel.com>\nReviewed-by: Song Liu <songliubraving@fb.com>\nSigned-off-by: Martin K. Petersen <martin.petersen@oracle.com>\nSigned-off-by: Sasha Levin <alexander.levin@microsoft.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\napparmor: Make path_max parameter readonly\n\n…","distinct":true,"url":"https://api.github.com/repos/ShevT/kernel_xiaomi_msm8998/commits/93f24b2d8c5009d90e772862e44515c4a12f6abd"}]}
{"actor":{"display_login":"ShevT"}}