1. 08 Mar, 2019 2 commits
  2. 05 Mar, 2019 1 commit
    • Arnd Bergmann's avatar
      xen: remove pre-xen3 fallback handlers · b1ddd406
      Arnd Bergmann authored
      The legacy hypercall handlers were originally added with
      a comment explaining that "copying the argument structures in
      HYPERVISOR_event_channel_op() and HYPERVISOR_physdev_op() into the local
      variable is sufficiently safe" and only made sure to not write
      past the end of the argument structure, the checks in linux/string.h
      disagree with that, when link-time optimizations are used:
      
      In function 'memcpy',
          inlined from 'pirq_query_unmask' at drivers/xen/fallback.c:53:2,
          inlined from '__startup_pirq' at drivers/xen/events/events_base.c:529:2,
          inlined from 'restore_pirqs' at drivers/xen/events/events_base.c:1439:3,
          inlined from 'xen_irq_resume' at drivers/xen/events/events_base.c:1581:2:
      include/linux/string.h:350:3: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
         __read_overflow2();
         ^
      
      Further research turned out that only Xen 3.0.2 or earlier required the
      fallback at all, while all versions in use today don't need it.
      As far as I can tell, it is not even possible to run a mainline kernel
      on those old Xen releases, at the time when they were in use, only
      a patched kernel was supported anyway.
      
      Fixes: cf47a83f ("xen/hypercall: fix hypercall fallback code for very old hypervisors")
      Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Cc: Jan Beulich <JBeulich@suse.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      b1ddd406
  3. 04 Mar, 2019 1 commit
  4. 18 Feb, 2019 8 commits
    • Juergen Gross's avatar
      x86/xen: dont add memory above max allowed allocation · 1d988ed4
      Juergen Gross authored
      Don't allow memory to be added above the allowed maximum allocation
      limit set by Xen.
      
      Trying to do so would result in cases like the following:
      
      [  584.559652] ------------[ cut here ]------------
      [  584.564897] WARNING: CPU: 2 PID: 1 at ../arch/x86/xen/multicalls.c:129 xen_alloc_pte+0x1c7/0x390()
      [  584.575151] Modules linked in:
      [  584.578643] Supported: Yes
      [  584.581750] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.4.120-92.70-default #1
      [  584.590000] Hardware name: Cisco Systems Inc UCSC-C460-M4/UCSC-C460-M4, BIOS C460M4.4.0.1b.0.0629181419 06/29/2018
      [  584.601862]  0000000000000000 ffffffff813175a0 0000000000000000 ffffffff8184777c
      [  584.610200]  ffffffff8107f4e1 ffff880487eb7000 ffff8801862b79c0 ffff88048608d290
      [  584.618537]  0000000000487eb7 ffffea0000000201 ffffffff81009de7 ffffffff81068561
      [  584.626876] Call Trace:
      [  584.629699]  [<ffffffff81019ad9>] dump_trace+0x59/0x340
      [  584.635645]  [<ffffffff81019eaa>] show_stack_log_lvl+0xea/0x170
      [  584.642391]  [<ffffffff8101ac51>] show_stack+0x21/0x40
      [  584.648238]  [<ffffffff813175a0>] dump_stack+0x5c/0x7c
      [  584.654085]  [<ffffffff8107f4e1>] warn_slowpath_common+0x81/0xb0
      [  584.660932]  [<ffffffff81009de7>] xen_alloc_pte+0x1c7/0x390
      [  584.667289]  [<ffffffff810647f0>] pmd_populate_kernel.constprop.6+0x40/0x80
      [  584.675241]  [<ffffffff815ecfe8>] phys_pmd_init+0x210/0x255
      [  584.681587]  [<ffffffff815ed207>] phys_pud_init+0x1da/0x247
      [  584.687931]  [<ffffffff815edb3b>] kernel_physical_mapping_init+0xf5/0x1d4
      [  584.695682]  [<ffffffff815e9bdd>] init_memory_mapping+0x18d/0x380
      [  584.702631]  [<ffffffff81064699>] arch_add_memory+0x59/0xf0
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      1d988ed4
    • Juergen Gross's avatar
      x86: respect memory size limiting via mem= parameter · 357b4da5
      Juergen Gross authored
      When limiting memory size via kernel parameter "mem=" this should be
      respected even in case of memory made accessible via a PCI card.
      
      Today this kind of memory won't be made usable in initial memory
      setup as the memory won't be visible in E820 map, but it might be
      added when adding PCI devices due to corresponding ACPI table entries.
      
      Not respecting "mem=" can be corrected by adding a global max_mem_size
      variable set by parse_memopt() which will result in rejecting adding
      memory areas resulting in a memory size above the allowed limit.
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Acked-by: default avatarIngo Molnar <mingo@kernel.org>
      Reviewed-by: default avatarWilliam Kucharski <william.kucharski@oracle.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      357b4da5
    • Oleksandr Andrushchenko's avatar
      xen/gntdev: Check and release imported dma-bufs on close · 068e79f4
      Oleksandr Andrushchenko authored
      Check if there are any imported dma-bufs left not released by
      user-space when grant device's release callback is called and
      free those if this is the case. This can happen if user-space
      leaks the buffers because of a bug or application has been
      terminated for any reason.
      Signed-off-by: default avatarOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
      Reviewed-by: Boris Ostrovsky@oracle.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      068e79f4
    • Oleksandr Andrushchenko's avatar
      xen/gntdev: Do not destroy context while dma-bufs are in use · fa13e665
      Oleksandr Andrushchenko authored
      If there are exported DMA buffers which are still in use and
      grant device is closed by either normal user-space close or by
      a signal this leads to the grant device context to be destroyed,
      thus making it not possible to correctly destroy those exported
      buffers when they are returned back to gntdev and makes the module
      crash:
      
      [  339.617540] [<ffff00000854c0d8>] dmabuf_exp_ops_release+0x40/0xa8
      [  339.617560] [<ffff00000867a6e8>] dma_buf_release+0x60/0x190
      [  339.617577] [<ffff0000082211f0>] __fput+0x88/0x1d0
      [  339.617589] [<ffff000008221394>] ____fput+0xc/0x18
      [  339.617607] [<ffff0000080ed4e4>] task_work_run+0x9c/0xc0
      [  339.617622] [<ffff000008089714>] do_notify_resume+0xfc/0x108
      
      Fix this by referencing gntdev on each DMA buffer export and
      unreferencing on buffer release.
      Signed-off-by: default avatarOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
      Reviewed-by: Boris Ostrovsky@oracle.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      fa13e665
    • Konrad Rzeszutek Wilk's avatar
      xen/pciback: Don't disable PCI_COMMAND on PCI device reset. · 7681f31e
      Konrad Rzeszutek Wilk authored
      There is no need for this at all. Worst it means that if
      the guest tries to write to BARs it could lead (on certain
      platforms) to PCI SERR errors.
      
      Please note that with af6fc858
      "xen-pciback: limit guest control of command register"
      a guest is still allowed to enable those control bits (safely), but
      is not allowed to disable them and that therefore a well behaved
      frontend which enables things before using them will still
      function correctly.
      
      This is done via an write to the configuration register 0x4 which
      triggers on the backend side:
      command_write
        \- pci_enable_device
           \- pci_enable_device_flags
              \- do_pci_enable_device
                 \- pcibios_enable_device
                    \-pci_enable_resourcess
                      [which enables the PCI_COMMAND_MEMORY|PCI_COMMAND_IO]
      
      However guests (and drivers) which don't do this could cause
      problems, including the security issues which XSA-120 sought
      to address.
      Reported-by: default avatarJan Beulich <jbeulich@suse.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Reviewed-by: default avatarPrarit Bhargava <prarit@redhat.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      7681f31e
    • Gustavo A. R. Silva's avatar
      xen-scsiback: mark expected switch fall-through · efac6c75
      Gustavo A. R. Silva authored
      In preparation to enabling -Wimplicit-fallthrough, mark switch
      cases where we are expecting to fall through.
      
      This patch fixes the following warning:
      
      drivers/xen/xen-scsiback.c: In function ‘scsiback_frontend_changed’:
      drivers/xen/xen-scsiback.c:1185:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
         if (xenbus_dev_is_online(dev))
            ^
      drivers/xen/xen-scsiback.c:1188:2: note: here
        case XenbusStateUnknown:
        ^~~~
      
      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: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      efac6c75
    • Gustavo A. R. Silva's avatar
      xen: mark expected switch fall-through · c9f19b67
      Gustavo A. R. Silva authored
      In preparation to enabling -Wimplicit-fallthrough, mark switch
      cases where we are expecting to fall through.
      
      This patch fixes the following warning:
      
      drivers/xen/xen-pciback/xenbus.c: In function ‘xen_pcibk_frontend_changed’:
      drivers/xen/xen-pciback/xenbus.c:545:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
         if (xenbus_dev_is_online(xdev))
            ^
      drivers/xen/xen-pciback/xenbus.c:548:2: note: here
        case XenbusStateUnknown:
        ^~~~
      
      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: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      c9f19b67
    • Linus Torvalds's avatar
      Linux 5.0-rc7 · a3b22b9f
      Linus Torvalds authored
      a3b22b9f
  5. 17 Feb, 2019 16 commits
    • Linus Torvalds's avatar
      Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2fee036a
      Linus Torvalds authored
      Pull EFI fixes from Ingo Molnar:
       "This tree reverts a GICv3 commit (which was broken) and fixes it in
        another way, by adding a memblock build-time entries quirk for ARM64"
      
      * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi/arm: Revert "Defer persistent reservations until after paging_init()"
        arm64, mm, efi: Account for GICv3 LPI tables in static memblock reserve table
      2fee036a
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8d33316d
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Three changes:
      
         - An UV fix/quirk to pull UV BIOS calls into the efi_runtime_lock
           locking regime. (This done by aliasing __efi_uv_runtime_lock to
           efi_runtime_lock, which should make the quirk nature obvious and
           maintain the general policy that the EFI lock (name...) isn't
           exposed to drivers.)
      
         - Our version of MAGA: Make a.out Great Again.
      
         - Add a new Intel model name enumerator to an upstream header to help
           reduce dependencies going forward"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/UV: Use efi_runtime_lock to serialise BIOS calls
        x86/CPU: Add Icelake model number
        x86/a.out: Clear the dump structure initially
      8d33316d
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dd6f29da
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Two fixes on the kernel side: fix an over-eager condition that failed
        larger perf ring-buffer sizes, plus fix crashes in the Intel BTS code
        for a corner case, found by fuzzing"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/core: Fix impossible ring-buffer sizes warning
        perf/x86: Add check_period PMU callback
      dd6f29da
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.0-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · c5f1ac5e
      Linus Torvalds authored
      Pull powerpc fix from Michael Ellerman:
       "Just one fix, for pgd/pud_present() which were broken on big endian
        since v4.20, leading to possible data corruption.
      
        Thanks to: Aneesh Kumar K.V., Erhard F., Jan Kara"
      
      * tag 'powerpc-5.0-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/64s: Fix possible corruption on big endian due to pgd/pud_present()
      c5f1ac5e
    • Linus Torvalds's avatar
      Merge tag 'csky-for-linus-5.0-rc6' of git://github.com/c-sky/csky-linux · 0513ebc3
      Linus Torvalds authored
      Pull arch/csky fixes from Guo Ren:
       "Here are some fixup patches for 5.0-rc6"
      
      * tag 'csky-for-linus-5.0-rc6' of git://github.com/c-sky/csky-linux:
        csky: Fixup dead loop in show_stack
        csky: Fixup io-range page attribute for mmap("/dev/mem")
        csky: coding convention: Use task_stack_page
        csky: Fixup wrong pt_regs size
        csky: Fixup _PAGE_GLOBAL bit for 610 tlb entry
      0513ebc3
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 1653c2f2
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "Two more driver bugfixes"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: bcm2835: Clear current buffer pointers and counts after a transfer
        i2c: cadence: Fix the hold bit setting
      1653c2f2
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · b8c82b6a
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
      
       - tweaks to Elan drivers (both PS/2 and I2C) to support new devices.
         Also revert of one of IDs as that device should really be driven by
         i2c-hid + hid-multitouch
      
       - a few drivers have been switched to set_brightness_blocking() call
         because they either were sleeping the their set_brightness()
         implementation or used workqueue but were not canceling it on unbind.
      
       - ps2-gpio and matrix_keypad needed to [properly] flush their works to
         avoid potential use-after-free on unbind.
      
       - other miscellaneous fixes.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: elan_i2c - add ACPI ID for touchpad in Lenovo V330-15ISK
        Input: st-keyscan - fix potential zalloc NULL dereference
        Input: apanel - switch to using brightness_set_blocking()
        Revert "Input: elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G"
        Input: qt2160 - switch to using brightness_set_blocking()
        Input: matrix_keypad - use flush_delayed_work()
        Input: ps2-gpio - flush TX work when closing port
        Input: cap11xx - switch to using set_brightness_blocking()
        Input: elantech - enable 3rd button support on Fujitsu CELSIUS H780
        Input: bma150 - register input device after setting private data
        Input: pwm-vibra - stop regulator after disabling pwm, not before
        Input: pwm-vibra - prevent unbalanced regulator
        Input: snvs_pwrkey - allow selecting driver for i.MX 7D
      b8c82b6a
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · ed0a0ec9
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "A somewhat bigger ARM update, and the usual smattering of x86 bug
        fixes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        kvm: vmx: Fix entry number check for add_atomic_switch_msr()
        KVM: x86: Recompute PID.ON when clearing PID.SN
        KVM: nVMX: Restore a preemption timer consistency check
        x86/kvm/nVMX: read from MSR_IA32_VMX_PROCBASED_CTLS2 only when it is available
        KVM: arm64: Forbid kprobing of the VHE world-switch code
        KVM: arm64: Relax the restriction on using stage2 PUD huge mapping
        arm: KVM: Add missing kvm_stage2_has_pmd() helper
        KVM: arm/arm64: vgic: Always initialize the group of private IRQs
        arm/arm64: KVM: Don't panic on failure to properly reset system registers
        arm/arm64: KVM: Allow a VCPU to fully reset itself
        KVM: arm/arm64: Reset the VCPU without preemption and vcpu state loaded
        arm64: KVM: Don't generate UNDEF when LORegion feature is present
        KVM: arm/arm64: vgic: Make vgic_cpu->ap_list_lock a raw_spinlock
        KVM: arm/arm64: vgic: Make vgic_dist->lpi_list_lock a raw_spinlock
        KVM: arm/arm64: vgic: Make vgic_irq->irq_lock a raw_spinlock
      ed0a0ec9
    • Mauro Ciancio's avatar
      Input: elan_i2c - add ACPI ID for touchpad in Lenovo V330-15ISK · 7ad222b3
      Mauro Ciancio authored
      This adds ELAN0617 to the ACPI table to support Elan touchpad found in
      Lenovo V330-15ISK.
      Signed-off-by: default avatarMauro Ciancio <mauro@acadeu.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      7ad222b3
    • Gabriel Fernandez's avatar
      Input: st-keyscan - fix potential zalloc NULL dereference · 2439d37e
      Gabriel Fernandez authored
      This patch fixes the following static checker warning:
      
      drivers/input/keyboard/st-keyscan.c:156 keyscan_probe()
      error: potential zalloc NULL dereference: 'keypad_data->input_dev'
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarGabriel Fernandez <gabriel.fernandez@st.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      2439d37e
    • Dmitry Torokhov's avatar
      Input: apanel - switch to using brightness_set_blocking() · 1cd48dc5
      Dmitry Torokhov authored
      Now that LEDs core allows "blocking" flavor of "set brightness" method we
      can use it and get rid of private work item. As a bonus, we are no longer
      forgetting to cancel it when we unbind the driver.
      Reviewed-by: default avatarSven Van Asbroeck <TheSven73@gmail.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      1cd48dc5
    • Michael Ellerman's avatar
      powerpc/64s: Fix possible corruption on big endian due to pgd/pud_present() · a5800762
      Michael Ellerman authored
      In v4.20 we changed our pgd/pud_present() to check for _PAGE_PRESENT
      rather than just checking that the value is non-zero, e.g.:
      
        static inline int pgd_present(pgd_t pgd)
        {
       -       return !pgd_none(pgd);
       +       return (pgd_raw(pgd) & cpu_to_be64(_PAGE_PRESENT));
        }
      
      Unfortunately this is broken on big endian, as the result of the
      bitwise & is truncated to int, which is always zero because
      _PAGE_PRESENT is 0x8000000000000000ul. This means pgd_present() and
      pud_present() are always false at compile time, and the compiler
      elides the subsequent code.
      
      Remarkably with that bug present we are still able to boot and run
      with few noticeable effects. However under some work loads we are able
      to trigger a warning in the ext4 code:
      
        WARNING: CPU: 11 PID: 29593 at fs/ext4/inode.c:3927 .ext4_set_page_dirty+0x70/0xb0
        CPU: 11 PID: 29593 Comm: debugedit Not tainted 4.20.0-rc1 #1
        ...
        NIP .ext4_set_page_dirty+0x70/0xb0
        LR  .set_page_dirty+0xa0/0x150
        Call Trace:
         .set_page_dirty+0xa0/0x150
         .unmap_page_range+0xbf0/0xe10
         .unmap_vmas+0x84/0x130
         .unmap_region+0xe8/0x190
         .__do_munmap+0x2f0/0x510
         .__vm_munmap+0x80/0x110
         .__se_sys_munmap+0x14/0x30
         system_call+0x5c/0x70
      
      The fix is simple, we need to convert the result of the bitwise & to
      an int before returning it.
      
      Thanks to Erhard, Jan Kara and Aneesh for help with debugging.
      
      Fixes: da7ad366 ("powerpc/mm/book3s: Update pmd_present to look at _PAGE_PRESENT bit")
      Cc: stable@vger.kernel.org # v4.20+
      Reported-by: default avatarErhard F. <erhard_f@mailbox.org>
      Reviewed-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      a5800762
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 64c0133e
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "This week is a much smaller update, containing fixes only for TI OMAP,
        NXP i.MX and Rockchips platforms:
      
        omap:
         - omap4 had problems with lost timer interrupts
         - another IRQ handling issue with OMAP5
         - A workaround for a regression in the pwm-omap-dmtimer driver
      
        NXP i.MX:
         - eMMC was broken on the new imx8mq-evk board
      
        Rockchip:
         - a fix for new dtc graph warnings and a regulator fix for rock64
         - USB support broke on rk3328-rock64"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
        arm64: dts: imx8mq: Fix boot from eMMC
        ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
        ARM: dts: Configure clock parent for pwm vibra
        bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe()
        arm64: dts: rockchip: enable usb-host regulators at boot on rk3328-rock64
        arm64: dts: rockchip: fix graph_port warning on rk3399 bob kevin and excavator
        ARM: OMAP5+: Fix inverted nirq pin interrupts with irq_set_type
        clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
        ARM: dts: rockchip: remove qos_cif1 from rk3188 power-domain
      64c0133e
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.0-2' of git://linux-nfs.org/~bfields/linux · 88fe73cb
      Linus Torvalds authored
      Pull more nfsd fixes from Bruce Fields:
       "Two small fixes, one for crashes using nfs/krb5 with older enctypes,
        one that could prevent clients from reclaiming state after a kernel
        upgrade"
      
      * tag 'nfsd-5.0-2' of git://linux-nfs.org/~bfields/linux:
        sunrpc: fix 4 more call sites that were using stack memory with a scatterlist
        Revert "nfsd4: return default lease period"
      88fe73cb
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-5.0-4' of git://git.linux-nfs.org/projects/anna/linux-nfs · 55638c52
      Linus Torvalds authored
      Pull more NFS client fixes from Anna Schumaker:
       "Three fixes this time.
      
        Nicolas's is for xprtrdma completion vector allocation on single-core
        systems. Greg's adds an error check when allocating a debugfs dentry.
        And Ben's is an additional fix for nfs_page_async_flush() to prevent
        pages from accidentally getting truncated.
      
        Summary:
      
         - Make sure Send CQ is allocated on an existing compvec
      
         - Properly check debugfs dentry before using it
      
         - Don't use page_file_mapping() after removing a page"
      
      * tag 'nfs-for-5.0-4' of git://git.linux-nfs.org/projects/anna/linux-nfs:
        NFS: Don't use page_file_mapping after removing the page
        rpc: properly check debugfs dentry before using it
        xprtrdma: Make sure Send CQ is allocated on an existing compvec
      55638c52
    • Linus Torvalds's avatar
      Merge tag 'auxdisplay-for-linus-v5.0-rc7' of git://github.com/ojeda/linux · 9a7dcde4
      Linus Torvalds authored
      Pull auxdisplay fix from Miguel Ojeda:
       "Fix potential user-after-free on ht16k33 module unload. Reported by
        Sven Van Asbroeck"
      
      * tag 'auxdisplay-for-linus-v5.0-rc7' of git://github.com/ojeda/linux:
        auxdisplay: ht16k33: fix potential user-after-free on module unload
      9a7dcde4
  6. 16 Feb, 2019 3 commits
  7. 15 Feb, 2019 9 commits
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 5ded5871
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two fairly small fixes: the qla one is a panic inducing use after free
        and the entropy fix may seem minor but it has had huge userspace
        impact thanks to an unrelated change in openssl that causes sshd to
        refuse logins until it has enough entropy for the session keys, which
        causes tens of minutes delay before the affected systems allow logins
        after reboot"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: qla2xxx: Fix panic from use after free in qla2x00_async_tm_cmd
        scsi: sd: fix entropy gathering for most rotational disks
      5ded5871
    • Scott Mayhew's avatar
      sunrpc: fix 4 more call sites that were using stack memory with a scatterlist · e7afe6c1
      Scott Mayhew authored
      While trying to reproduce a reported kernel panic on arm64, I discovered
      that AUTH_GSS basically doesn't work at all with older enctypes on arm64
      systems with CONFIG_VMAP_STACK enabled.  It turns out there still a few
      places using stack memory with scatterlists, causing krb5_encrypt() and
      krb5_decrypt() to produce incorrect results (or a BUG if CONFIG_DEBUG_SG
      is enabled).
      
      Tested with cthon on v4.0/v4.1/v4.2 with krb5/krb5i/krb5p using
      des3-cbc-sha1 and arcfour-hmac-md5.
      Signed-off-by: default avatarScott Mayhew <smayhew@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      e7afe6c1
    • Arnd Bergmann's avatar
      Merge tag 'omap-for-v5.0/fixes-rc5' of... · 410d7360
      Arnd Bergmann authored
      Merge tag 'omap-for-v5.0/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes
      
      Fix omap4 and later lost cpu1 interrupts for periodic timer
      
      A fix from Russell that took a while to get applied into fixes as
      I thought Russell is merging this one.
      
      * tag 'omap-for-v5.0/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
      410d7360
    • Miguel Ojeda's avatar
      include/linux/module.h: copy __init/__exit attrs to init/cleanup_module · a6e60d84
      Miguel Ojeda authored
      The upcoming GCC 9 release extends the -Wmissing-attributes warnings
      (enabled by -Wall) to C and aliases: it warns when particular function
      attributes are missing in the aliases but not in their target.
      
      In particular, it triggers for all the init/cleanup_module
      aliases in the kernel (defined by the module_init/exit macros),
      ending up being very noisy.
      
      These aliases point to the __init/__exit functions of a module,
      which are defined as __cold (among other attributes). However,
      the aliases themselves do not have the __cold attribute.
      
      Since the compiler behaves differently when compiling a __cold
      function as well as when compiling paths leading to calls
      to __cold functions, the warning is trying to point out
      the possibly-forgotten attribute in the alias.
      
      In order to keep the warning enabled, we decided to silence
      this case. Ideally, we would mark the aliases directly
      as __init/__exit. However, there are currently around 132 modules
      in the kernel which are missing __init/__exit in their init/cleanup
      functions (either because they are missing, or for other reasons,
      e.g. the functions being called from somewhere else); and
      a section mismatch is a hard error.
      
      A conservative alternative was to mark the aliases as __cold only.
      However, since we would like to eventually enforce __init/__exit
      to be always marked,  we chose to use the new __copy function
      attribute (introduced by GCC 9 as well to deal with this).
      With it, we copy the attributes used by the target functions
      into the aliases. This way, functions that were not marked
      as __init/__exit won't have their aliases marked either,
      and therefore there won't be a section mismatch.
      
      Note that the warning would go away marking either the extern
      declaration, the definition, or both. However, we only mark
      the definition of the alias, since we do not want callers
      (which only see the declaration) to be compiled as if the function
      was __cold (and therefore the paths leading to those calls
      would be assumed to be unlikely).
      
      Link: https://lore.kernel.org/lkml/20190123173707.GA16603@gmail.com/
      Link: https://lore.kernel.org/lkml/20190206175627.GA20399@gmail.com/Suggested-by: default avatarMartin Sebor <msebor@gcc.gnu.org>
      Acked-by: default avatarJessica Yu <jeyu@kernel.org>
      Signed-off-by: default avatarMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
      a6e60d84
    • Miguel Ojeda's avatar
      Compiler Attributes: add support for __copy (gcc >= 9) · c0d9782f
      Miguel Ojeda authored
      From the GCC manual:
      
        copy
        copy(function)
      
          The copy attribute applies the set of attributes with which function
          has been declared to the declaration of the function to which
          the attribute is applied. The attribute is designed for libraries
          that define aliases or function resolvers that are expected
          to specify the same set of attributes as their targets. The copy
          attribute can be used with functions, variables, or types. However,
          the kind of symbol to which the attribute is applied (either
          function or variable) must match the kind of symbol to which
          the argument refers. The copy attribute copies only syntactic and
          semantic attributes but not attributes that affect a symbol’s
          linkage or visibility such as alias, visibility, or weak.
          The deprecated attribute is also not copied.
      
        https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
      
      The upcoming GCC 9 release extends the -Wmissing-attributes warnings
      (enabled by -Wall) to C and aliases: it warns when particular function
      attributes are missing in the aliases but not in their target, e.g.:
      
          void __cold f(void) {}
          void __alias("f") g(void);
      
      diagnoses:
      
          warning: 'g' specifies less restrictive attribute than
          its target 'f': 'cold' [-Wmissing-attributes]
      
      Using __copy(f) we can copy the __cold attribute from f to g:
      
          void __cold f(void) {}
          void __copy(f) __alias("f") g(void);
      
      This attribute is most useful to deal with situations where an alias
      is declared but we don't know the exact attributes the target has.
      
      For instance, in the kernel, the widely used module_init/exit macros
      define the init/cleanup_module aliases, but those cannot be marked
      always as __init/__exit since some modules do not have their
      functions marked as such.
      Suggested-by: default avatarMartin Sebor <msebor@gcc.gnu.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
      c0d9782f
    • Miguel Ojeda's avatar
      lib/crc32.c: mark crc32_le_base/__crc32c_le_base aliases as __pure · ff98e20e
      Miguel Ojeda authored
      The upcoming GCC 9 release extends the -Wmissing-attributes warnings
      (enabled by -Wall) to C and aliases: it warns when particular function
      attributes are missing in the aliases but not in their target.
      
      In particular, it triggers here because crc32_le_base/__crc32c_le_base
      aren't __pure while their target crc32_le/__crc32c_le are.
      
      These aliases are used by architectures as a fallback in accelerated
      versions of CRC32. See commit 9784d82d ("lib/crc32: make core crc32()
      routines weak so they can be overridden").
      
      Therefore, being fallbacks, it is likely that even if the aliases
      were called from C, there wouldn't be any optimizations possible.
      Currently, the only user is arm64, which calls this from asm.
      
      Still, marking the aliases as __pure makes sense and is a good idea
      for documentation purposes and possible future optimizations,
      which also silences the warning.
      Acked-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Tested-by: default avatarLaura Abbott <labbott@redhat.com>
      Signed-off-by: default avatarMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
      ff98e20e
    • Miguel Ojeda's avatar
      auxdisplay: ht16k33: fix potential user-after-free on module unload · 69ef9bc5
      Miguel Ojeda authored
      On module unload/remove, we need to ensure that work does not run
      after we have freed resources. Concretely, cancel_delayed_work()
      may return while the callback function is still running.
      
      From kernel/workqueue.c:
      
          The work callback function may still be running on return,
          unless it returns true and the work doesn't re-arm itself.
          Explicitly flush or use cancel_delayed_work_sync() to wait on it.
      
      Link: https://lore.kernel.org/lkml/20190204220952.30761-1-TheSven73@googlemail.com/Reported-by: default avatarSven Van Asbroeck <thesven73@gmail.com>
      Reviewed-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Reviewed-by: default avatarSven Van Asbroeck <TheSven73@gmail.com>
      Acked-by: default avatarRobin van der Gracht <robin@protonic.nl>
      Signed-off-by: default avatarMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
      69ef9bc5
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190215' of git://git.kernel.dk/linux-block · 24f0a487
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - Ensure we insert into the hctx dispatch list, if a request is marked
         as DONTPREP (Jianchao)
      
       - NVMe pull request, single missing unlock on error fix (Keith)
      
       - MD pull request, single fix for a potentially data corrupting issue
         (Nate)
      
       - Floppy check_events regression fix (Yufen)
      
      * tag 'for-linus-20190215' of git://git.kernel.dk/linux-block:
        md/raid1: don't clear bitmap bits on interrupted recovery.
        floppy: check_events callback should not return a negative number
        nvme-pci: add missing unlock for reset error
        blk-mq: insert rq with DONTPREP to hctx dispatch list when requeue
      24f0a487
    • Linus Torvalds's avatar
      Merge tag 'for-5.0/dm-fixes-3' of... · ae3fa8bd
      Linus Torvalds authored
      Merge tag 'for-5.0/dm-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
      
       - Fix bug in DM crypt's sizing of its block integrity tag space,
         resulting in less memory use when DM crypt layers on DM integrity.
      
       - Fix a long-standing DM thinp crash consistency bug that was due to
         improper handling of FUA. This issue is specific to writes that fill
         an entire thinp block which needs to be allocated.
      
      * tag 'for-5.0/dm-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm thin: fix bug where bio that overwrites thin block ignores FUA
        dm crypt: don't overallocate the integrity tag space
      ae3fa8bd