Skip to content
  1. Oct 31, 2020
    • Linus Torvalds's avatar
      Merge tag 'libata-5.10-2020-10-30' of git://git.kernel.dk/linux-block · 8f9a2a19
      Linus Torvalds authored
      Pull libata fix from Jens Axboe:
       "Single fix for an old regression with sata_nv"
      
      * tag 'libata-5.10-2020-10-30' of git://git.kernel.dk/linux-block:
        ata: sata_nv: Fix retrieving of active qcs
      8f9a2a19
    • Linus Torvalds's avatar
      Merge tag 'for-5.10-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · f5d80856
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
      
       - lockdep fixes:
           - drop path locks before manipulating sysfs objects or qgroups
           - preliminary fixes before tree locks get switched to rwsem
           - use annotated seqlock
      
       - build warning fixes (printk format)
      
       - fix relocation vs fallocate race
      
       - tree checker properly validates number of stripes and parity
      
       - readahead vs device replace fixes
      
       - iomap dio fix for unnecessary buffered io fallback
      
      * tag 'for-5.10-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: convert data_seqcount to seqcount_mutex_t
        btrfs: don't fallback to buffered read if we don't need to
        btrfs: add a helper to read the tree_root commit root for backref lookup
        btrfs: drop the path before adding qgroup items when enabling qgroups
        btrfs: fix readahead hang and use-after-free after removing a device
        btrfs: fix use-after-free on readahead extent after failure to create it
        btrfs: tree-checker: validate number of chunk stripes and parity
        btrfs: tree-checker: fix incorrect printk format
        btrfs: drop the path before adding block group sysfs files
        btrfs: fix relocation failure due to race with fallocate
      f5d80856
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · aab6bf50
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "The diffstat is a bit spread out thanks to an invasive CPU erratum
        workaround which missed the merge window and also a bunch of fixes to
        the recently added MTE selftests.
      
         - Fixes to MTE kselftests
      
         - Fix return code from KVM Spectre-v2 hypercall
      
         - Build fixes for ld.lld and Clang's infamous integrated assembler
      
         - Ensure RCU is up and running before we use printk()
      
         - Workaround for Cortex-A77 erratum 1508412
      
         - Fix linker warnings from unexpected ELF sections
      
         - Ensure PE/COFF sections are 64k aligned"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S
        arm64/smp: Move rcu_cpu_starting() earlier
        arm64: Add workaround for Arm Cortex-A77 erratum 1508412
        arm64: Add part number for Arm Cortex-A77
        arm64: mte: Document that user PSTATE.TCO is ignored by kernel uaccess
        module: use hidden visibility for weak symbol references
        arm64: efi: increase EFI PE/COFF header padding to 64 KB
        arm64: vmlinux.lds: account for spurious empty .igot.plt sections
        kselftest/arm64: Fix check_user_mem test
        kselftest/arm64: Fix check_ksm_options test
        kselftest/arm64: Fix check_mmap_options test
        kselftest/arm64: Fix check_child_memory test
        kselftest/arm64: Fix check_tags_inclusion test
        kselftest/arm64: Fix check_buffer_fill test
        arm64: avoid -Woverride-init warning
        KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return SMCCC_RET_NOT_REQUIRED
        arm64: vdso32: Allow ld.lld to properly link the VDSO
      aab6bf50
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-fixes-5.10' of... · 11ad2a73
      Linus Torvalds authored
      Merge tag 'asm-generic-fixes-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
      
      Pull asm-generic fix from Arnd Bergmann:
       "One small bugfix, fixing a build regression for RISC-V"
      
      * tag 'asm-generic-fixes-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        asm-generic: mark __{get,put}_user_fn as __always_inline
      11ad2a73
    • Linus Torvalds's avatar
      Merge tag 'arm-soc-fixes-v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 65b55d4c
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "This is a fairly large set of bug fixes on top of -rc1, as most of
        them were ready but didn't quite make it into the last-minute pull
        requests for the merge window.
      
        Allwinner:
         - fix for incorrect CPU overtemperature limit
      
        Amlogic:
         - multiple smaller DT bugfixes, and missing device nodes
      
        Marvell EBU:
         - add missing aliases for ethernet switch ports on espressobin board
      
        Marvell MMP:
         - DTC warning fix
         - bugfix for camera interface power-down
      
        NXP i.MX:
         - re-enable the GPIO driver on all defconfigs
      
        ST STM32MP1:
         - fix random crashes from incorrect voltage settings
      
        Synaptics Berlin:
         - enable the correct hardware timer driver
      
        Texas Instruments K2G:
         - fix a boot regression in the power domain code
      
        TEE drivers:
         - fix regression in TEE "login" method
      
        SCMI drivers:
         - multiple code fixes for corner cases in newly added code
      
        MAINTAINERS file:
         - move Kukjin Kim and Sangbeom Kim to credits (used to work on
           Samsung Exynos)
         - Masahiro Yamada is stepping down as Uniphier maintainer
      
        I did not include a series of patches that work around a regression
        caused by a bugfix in an ethernet phy driver that resulted in an
        inadvertent DT binding change. This is still under discussion"
      
      * tag 'arm-soc-fixes-v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (31 commits)
        soc: ti: ti_sci_pm_domains: check for proper args count in xlate
        ARM: dts: stm32: Describe Vin power supply on stm32mp157c-edx board
        ARM: dts: stm32: Describe Vin power supply on stm32mp15xx-dkx board
        ARM: multi_v5_defconfig: Select CONFIG_GPIO_MXC
        ARM: imx_v4_v5_defconfig: Select CONFIG_GPIO_MXC
        ARM: dts: mmp2-olpc-xo-1-75: Use plural form of "-gpios"
        ARM: dts: mmp3: Add power domain for the camera
        arm64: berlin: Select DW_APB_TIMER_OF
        dt-bindings: sram: sunxi-sram: add V3s compatible string
        MAINTAINERS: Move Sangbeom Kim to credits
        MAINTAINERS: Move Kukjin Kim to credits
        MAINTAINERS: step down as maintainer of UniPhier SoCs and Denali driver
        ARM: multi_v7_defconfig: Build in CONFIG_GPIO_MXC by default
        ARM: imx_v6_v7_defconfig: Build in CONFIG_GPIO_MXC by default
        arm64: defconfig: Build in CONFIG_GPIO_MXC by default
        arm64: dts: meson: odroid-n2 plus: fix vddcpu_a pwm
        ARM: dts: meson8: remove two invalid interrupt lines from the GPU node
        arm64: dts: amlogic: add missing ethernet reset ID
        firmware: arm_scmi: Fix duplicate workqueue name
        firmware: arm_scmi: Fix locking in notifications
        ...
      65b55d4c
    • Linus Torvalds's avatar
      Merge tag 'pnp-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d2c4d6e8
      Linus Torvalds authored
      Pull PNP fix from Rafael Wysocki:
       "Make function names in kerneldoc comments match the actual names of
        the functions that they correspond to (Mauro Carvalho Chehab)"
      
      * tag 'pnp-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PNP: fix kernel-doc markups
      d2c4d6e8
    • Linus Torvalds's avatar
      Merge tag 'devprop-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a5a16050
      Linus Torvalds authored
      Pull device properties framework fixes from Rafael Wysocki:
       "Fix the secondary firmware node handling while manipulating the
        primary firmware node for a given device (Andy Shevchenko)"
      
      * tag 'devprop-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        device property: Don't clear secondary pointer for shared primary firmware node
        device property: Keep secondary firmware node secondary by type
      a5a16050
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · ee176906
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These fix three assorted minor issues.
      
        Specifics:
      
         - Eliminate compiler warning emitted when building the ACPI dock
           driver (Arnd Bergmann).
      
         - Drop lid_init_state quirk for Acer SW5-012 that is not needed any
           more after recent changes (Hans de Goede).
      
         - Fix "missing minus" typo in the NFIT parsing code (Zhang Qilong)"
      
      * tag 'acpi-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: button: Drop no longer necessary Acer SW5-012 lid_init_state quirk
        ACPI: NFIT: Fix comparison to '-ENXIO'
        ACPI: dock: fix enum-conversion warning
      ee176906
    • Linus Torvalds's avatar
      Merge tag 'pm-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 8843f405
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix a few issues related to running intel_pstate in the passive
        mode with HWP enabled, correct the handling of the max_cstate module
        parameter in intel_idle and make a few janitorial changes.
      
        Specifics:
      
         - Modify Kconfig to prevent configuring either the "conservative" or
           the "ondemand" governor as the default cpufreq governor if
           intel_pstate is selected, in which case "schedutil" is the default
           choice for the default governor setting (Rafael Wysocki).
      
         - Modify the cpufreq core, intel_pstate and the schedutil governor to
           avoid missing updates of the HWP max limit when intel_pstate
           operates in the passive mode with HWP enabled (Rafael Wysocki).
      
         - Fix max_cstate module parameter handling in intel_idle for
           processor models with C-state tables coming from ACPI (Chen Yu).
      
         - Clean up assorted pieces of power management code (Jackie Zamow,
           Tom Rix, Zhang Qilong)"
      
      * tag 'pm-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: schedutil: Always call driver if CPUFREQ_NEED_UPDATE_LIMITS is set
        cpufreq: Introduce cpufreq_driver_test_flags()
        cpufreq: speedstep: remove unneeded semicolon
        PM: sleep: fix typo in kernel/power/process.c
        intel_idle: Fix max_cstate for processor models without C-state tables
        cpufreq: intel_pstate: Avoid missing HWP max updates in passive mode
        cpufreq: Introduce CPUFREQ_NEED_UPDATE_LIMITS driver flag
        cpufreq: Avoid configuring old governors as default with intel_pstate
        cpufreq: e_powersaver: remove unreachable break
      8843f405
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 88098fd6
      Linus Torvalds authored
      Pull MMC host fixes from Ulf Hansson:
      
       - sdhci: Fix performance regression with auto CMD auto select
      
       - sdhci-of-esdhc: Fix initialization for eMMC HS400 mode
      
       - sdhci-of-esdhc: Fix timeout bug for tuning commands
      
      * tag 'mmc-v5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdhci-of-esdhc: make sure delay chain locked for HS400
        mmc: sdhci-of-esdhc: set timeout to max before tuning
        mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
      88098fd6
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-10-30-1' of git://anongit.freedesktop.org/drm/drm · 7ba4d867
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A busier rc2 than normal, have larger sets of fixes for amdgpu +
        nouveau, along with some i915, docs, core, panel, sun4i, v3d, vc4
        fixes.
      
        Nothing spooky though or pumpkin related.
      
        docs:
         - kernel doc fixes
      
        core:
         - fix shmem helpers dma-buf mmap bug
      
        amdgpu:
         - Add new navi1x PCI ID
         - GPUVM reserved area fixes
         - Misc display fixes
         - Fix bad interactions between display code and CONFIG_KGDB
         - Fixes for SMU manual fan control and i2c
      
        nouveau:
         - endian regression fix for old gpus
         - buffer object refcount fix
         - uapi start/end alignment fix
         - display notifier fix
         - display clock checking fixes
      
        i915:
         - Fix max memory region size calculation
         - Restore ILK-M RPS support, restoring performance
         - Reject 90/270 degreerotated initial fbs
      
        panel:
         - mantix reset fixes
      
        sun4i:
         - scalar fix
      
        vc4:
         - hdmi audio fixes
      
        v3d:
         - fix double free"
      
      * tag 'drm-fixes-2020-10-30-1' of git://anongit.freedesktop.org/drm/drm: (42 commits)
        drm/nouveau/kms/nv50-: Fix clock checking algorithm in nv50_dp_mode_valid()
        drm/nouveau/kms/nv50-: Get rid of bogus nouveau_conn_mode_valid()
        drm/nouveau/device: fix changing endianess code to work on older GPUs
        drm/nouveau/gem: fix "refcount_t: underflow; use-after-free"
        drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
        drm/nouveau/nouveau: fix the start/end range for migration
        drm/i915: Reject 90/270 degree rotated initial fbs
        drm/i915: Restore ILK-M RPS support
        drm/i915/region: fix max size calculation
        drm/vc4: Rework the structure conversion functions
        drm/vc4: hdmi: Add a name to the codec DAI component
        drm/shme-helpers: Fix dma_buf_mmap forwarding bug
        drm/vc4: hdmi: Avoid sleeping in atomic context
        drm/amdgpu/pm: fix the fan speed in fan1_input in manual mode for navi1x
        drm/amd/pm: fix the wrong fan speed in fan1_input
        drm/amdgpu/swsmu: drop smu i2c bus on navi1x
        drm/vc4: drv: Add error handding for bind
        drm: drm_print.h: fix kernel-doc markups
        drm: kernel-doc: drm_dp_helper.h: fix a typo
        drm: kernel-doc: add description for a new function parameter
        ...
      7ba4d867
  2. Oct 30, 2020
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-button' and 'acpi-dock' · 8f7304bb
      Rafael J. Wysocki authored
      * acpi-button:
        ACPI: button: Drop no longer necessary Acer SW5-012 lid_init_state quirk
      
      * acpi-dock:
        ACPI: dock: fix enum-conversion warning
      8f7304bb
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpuidle' and 'pm-sleep' · dea47cf4
      Rafael J. Wysocki authored
      * pm-cpuidle:
        intel_idle: Fix max_cstate for processor models without C-state tables
      
      * pm-sleep:
        PM: sleep: fix typo in kernel/power/process.c
      dea47cf4
    • Fangrui Song's avatar
      arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S · ec9d7807
      Fangrui Song authored
      Commit 39d114dd ("arm64: add KASAN support") added .weak directives to
      arch/arm64/lib/mem*.S instead of changing the existing SYM_FUNC_START_PI
      macros. This can lead to the assembly snippet `.weak memcpy ... .globl
      memcpy` which will produce a STB_WEAK memcpy with GNU as but STB_GLOBAL
      memcpy with LLVM's integrated assembler before LLVM 12. LLVM 12 (since
      https://reviews.llvm.org/D90108) will error on such an overridden symbol
      binding.
      
      Use the appropriate SYM_FUNC_START_WEAK_PI instead.
      
      Fixes: 39d114dd
      
       ("arm64: add KASAN support")
      Reported-by: default avatarSami Tolvanen <samitolvanen@google.com>
      Signed-off-by: default avatarFangrui Song <maskray@google.com>
      Tested-by: default avatarSami Tolvanen <samitolvanen@google.com>
      Tested-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Cc: <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20201029181951.1866093-1-maskray@google.com
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      ec9d7807
    • Qian Cai's avatar
      arm64/smp: Move rcu_cpu_starting() earlier · ce3d31ad
      Qian Cai authored
      
      
      The call to rcu_cpu_starting() in secondary_start_kernel() is not early
      enough in the CPU-hotplug onlining process, which results in lockdep
      splats as follows:
      
       WARNING: suspicious RCU usage
       -----------------------------
       kernel/locking/lockdep.c:3497 RCU-list traversed in non-reader section!!
      
       other info that might help us debug this:
      
       RCU used illegally from offline CPU!
       rcu_scheduler_active = 1, debug_locks = 1
       no locks held by swapper/1/0.
      
       Call trace:
        dump_backtrace+0x0/0x3c8
        show_stack+0x14/0x60
        dump_stack+0x14c/0x1c4
        lockdep_rcu_suspicious+0x134/0x14c
        __lock_acquire+0x1c30/0x2600
        lock_acquire+0x274/0xc48
        _raw_spin_lock+0xc8/0x140
        vprintk_emit+0x90/0x3d0
        vprintk_default+0x34/0x40
        vprintk_func+0x378/0x590
        printk+0xa8/0xd4
        __cpuinfo_store_cpu+0x71c/0x868
        cpuinfo_store_cpu+0x2c/0xc8
        secondary_start_kernel+0x244/0x318
      
      This is avoided by moving the call to rcu_cpu_starting up near the
      beginning of the secondary_start_kernel() function.
      
      Signed-off-by: default avatarQian Cai <cai@redhat.com>
      Acked-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Link: https://lore.kernel.org/lkml/160223032121.7002.1269740091547117869.tip-bot2@tip-bot2/
      Link: https://lore.kernel.org/r/20201028182614.13655-1-cai@redhat.com
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      ce3d31ad
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2020-10-29' of... · 7babd126
      Dave Airlie authored
      
      Merge tag 'drm-intel-fixes-2020-10-29' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Fix max memory region size calculation (Matt)
      - Restore ILK-M RPS support, restoring performance (Ville)
      - Reject 90/270 degreerotated initial fbs (Ville)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201030004442.GA146813@intel.com
      7babd126
    • Dave Airlie's avatar
      Merge branch 'linux-5.10' of git://github.com/skeggsb/linux into drm-fixes · a7ece18c
      Dave Airlie authored
      
      
      Fixes an endian regression on older GPUs, a refcount overflow,
      a migration fix and 3 display fixes.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Ben Skeggs <skeggsb@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/CACAvsv6MOjtgzKchpis1XrZYmu7-6CaxnHVzJKOXPH62_em7tw@mail.gmail.com
      a7ece18c
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2020-10-29' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · 671d2799
      Dave Airlie authored
      
      
      First round of drm-misc-fixes with a couple of leftovers from
      drm-misc-fixes next.
      
      Some reset fixes for the mantix panel, some fixes for a scaler issue on
      sun4i, many kernel-doc fixes and various fixes for vc4 (mostly HDMI audio
      related)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201029173414.fxrl5jacsdwqheto@gilmour.lan
      671d2799
    • Lyude Paul's avatar
      drm/nouveau/kms/nv50-: Fix clock checking algorithm in nv50_dp_mode_valid() · d7787cc0
      Lyude Paul authored
      
      
      While I thought I had this correct (since it actually did reject modes
      like I expected during testing), Ville Syrjala from Intel pointed out
      that the logic here isn't correct. max_clock refers to the max data rate
      supported by the DP encoder. So, limiting it to the output of ds_clock (which
      refers to the maximum dotclock of the downstream DP device) doesn't make any
      sense. Additionally, since we're using the connector's bpc as the canonical BPC
      we should use this in mode_valid until we support dynamically setting the bpp
      based on bandwidth constraints.
      
      https://lists.freedesktop.org/archives/dri-devel/2020-September/280276.html
      
      For more info.
      
      So, let's rewrite this using Ville's advice.
      
      v2:
      * Ville pointed out I mixed up the dotclock and the link rate. So fix that...
      * ...and also rename all the variables in this function to be more appropriately
        labeled so I stop mixing them up.
      * Reuse the bpp from the connector for now until we have dynamic bpp selection.
      * Use use DIV_ROUND_UP for calculating the mode rate like i915 does, which we
        should also have been doing from the start
      
      Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
      Fixes: 409d3813
      
       ("drm/nouveau/kms/nv50-: Use downstream DP clock limits for mode validation")
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Lyude Paul <lyude@redhat.com>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      d7787cc0
    • Lyude Paul's avatar
      drm/nouveau/kms/nv50-: Get rid of bogus nouveau_conn_mode_valid() · 2d831155
      Lyude Paul authored
      
      
      Ville also pointed out that I got a lot of the logic here wrong as well, whoops.
      While I don't think anyone's likely using 3D output with nouveau, the next patch
      will make nouveau_conn_mode_valid() make a lot less sense. So, let's just get
      rid of it and open-code it like before, while taking care to move the 3D frame
      packing calculations on the dot clock into the right place.
      
      Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
      Fixes: d6a9efec
      
       ("drm/nouveau/kms/nv50-: Share DP SST mode_valid() handling with MST")
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: <stable@vger.kernel.org> # v5.8+
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      2d831155
    • Karol Herbst's avatar
      drm/nouveau/device: fix changing endianess code to work on older GPUs · dcd292c1
      Karol Herbst authored
      With this we try to detect if the endianess switch works and assume LE if
      not. Suggested by Ben.
      
      Fixes: 51c05340
      
       ("drm/nouveau/device: detect if changing endianness failed")
      Signed-off-by: default avatarKarol Herbst <kherbst@redhat.com>
      Cc: <stable@vger.kernel.org> # v5.8+
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      dcd292c1
    • Karol Herbst's avatar
      drm/nouveau/gem: fix "refcount_t: underflow; use-after-free" · 92568145
      Karol Herbst authored
      
      
      we can't use nouveau_bo_ref here as no ttm object was allocated and
      nouveau_bo_ref mainly deals with that. Simply deallocate the object.
      
      Signed-off-by: default avatarKarol Herbst <kherbst@redhat.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      92568145
    • Lyude Paul's avatar
      drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps · 24d9422e
      Lyude Paul authored
      
      
      Not entirely sure why this never came up when I originally tested this
      (maybe some BIOSes already have this setup?) but the ->caps_init vfunc
      appears to cause the display engine to throw an exception on driver
      init, at least on my ThinkPad P72:
      
      nouveau 0000:01:00.0: disp: chid 0 mthd 008c data 00000000 0000508c 0000102b
      
      This is magic nvidia speak for "You need to have the DMA notifier offset
      programmed before you can call NV507D_GET_CAPABILITIES." So, let's fix
      this by doing that, and also perform an update afterwards to prevent
      racing with the GPU when reading capabilities.
      
      v2:
      * Don't just program the DMA notifier offset, make sure to actually
        perform an update
      v3:
      * Don't call UPDATE()
      * Actually read the correct notifier fields, as apparently the
        CAPABILITIES_DONE field lives in a different location than the main
        NV_DISP_CORE_NOTIFIER_1 field. As well, 907d+ use a different
        CAPABILITIES_DONE field then pre-907d cards.
      v4:
      * Don't forget to check the return value of core507d_read_caps()
      v5:
      * Get rid of NV50_DISP_CAPS_NTFY[14], use NV50_DISP_CORE_NTFY
      * Disable notifier after calling GetCapabilities()
      
      Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
      Fixes: 4a2cb418
      
       ("drm/nouveau/kms/nv50-: Probe SOR and PIOR caps for DP interlacing support")
      Cc: <stable@vger.kernel.org> # v5.8+
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      24d9422e
    • Ralph Campbell's avatar
      drm/nouveau/nouveau: fix the start/end range for migration · cfa736f5
      Ralph Campbell authored
      
      
      The user level OpenCL code shouldn't have to align start and end
      addresses to a page boundary. That is better handled in the nouveau
      driver. The npages field is also redundant since it can be computed
      from the start and end addresses.
      
      Signed-off-by: default avatarRalph Campbell <rcampbell@nvidia.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      cfa736f5
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.10-2020-10-29' of... · 14c90746
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-5.10-2020-10-29' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.10-2020-10-29:
      
      amdgpu:
      - Add new navi1x PCI ID
      - GPUVM reserved area fixes
      - Misc display fixes
      - Fix bad interactions between display code and CONFIG_KGDB
      - Fixes for SMU manual fan control and i2c
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexdeucher@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201029061549.4133-1-alexander.deucher@amd.com
      14c90746
    • Tero Kristo's avatar
      soc: ti: ti_sci_pm_domains: check for proper args count in xlate · 3d696f42
      Tero Kristo authored
      K2G devices still only use single parameter for power-domains property,
      so check for this properly in the driver. Without this, every peripheral
      fails to probe resulting in boot failure.
      
      Link: https://lore.kernel.org/r/20201029093337.21170-1-t-kristo@ti.com
      Fixes: efa5c01c
      
       ("soc: ti: ti_sci_pm_domains: switch to use multiple genpds instead of one")
      Reported-by: default avatarNishanth Menon <nm@ti.com>
      Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
      Acked-by: default avatarNishanth Menon <nm@ti.com>
      Acked-by: default avatarSantosh Shilimkar <ssantosh@kernel.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      3d696f42
    • Linus Torvalds's avatar
      Merge tag 'fallthrough-fixes-clang-5.10-rc2' of... · 07e08873
      Linus Torvalds authored
      Merge tag 'fallthrough-fixes-clang-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull fallthrough fix from Gustavo A. R. Silva:
       "This fixes a ton of fall-through warnings when building with Clang
        12.0.0 and -Wimplicit-fallthrough"
      
      * tag 'fallthrough-fixes-clang-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        include: jhash/signal: Fix fall-through warnings for Clang
      07e08873
    • Linus Torvalds's avatar
      Merge tag 'net-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 934291ff
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Current release regressions:
      
         - r8169: fix forced threading conflicting with other shared
           interrupts; we tried to fix the use of raise_softirq_irqoff from an
           IRQ handler on RT by forcing hard irqs, but this driver shares
           legacy PCI IRQs so drop the _irqoff() instead
      
         - tipc: fix memory leak caused by a recent syzbot report fix to
           tipc_buf_append()
      
        Current release - bugs in new features:
      
         - devlink: Unlock on error in dumpit() and fix some error codes
      
         - net/smc: fix null pointer dereference in smc_listen_decline()
      
        Previous release - regressions:
      
         - tcp: Prevent low rmem stalls with SO_RCVLOWAT.
      
         - net: protect tcf_block_unbind with block lock
      
         - ibmveth: Fix use of ibmveth in a bridge; the self-imposed filtering
           to only send legal frames to the hypervisor was too strict
      
         - net: hns3: Clear the CMDQ registers before unmapping BAR region;
           incorrect cleanup order was leading to a crash
      
         - bnxt_en - handful of fixes to fixes:
            - Send HWRM_FUNC_RESET fw command unconditionally, even if there
              are PCIe errors being reported
            - Check abort error state in bnxt_open_nic().
            - Invoke cancel_delayed_work_sync() for PFs also.
            - Fix regression in workqueue cleanup logic in bnxt_remove_one().
      
         - mlxsw: Only advertise link modes supported by both driver and
           device, after removal of 56G support from the driver 56G was not
           cleared from advertised modes
      
         - net/smc: fix suppressed return code
      
        Previous release - always broken:
      
         - netem: fix zero division in tabledist, caused by integer overflow
      
         - bnxt_en: Re-write PCI BARs after PCI fatal error.
      
         - cxgb4: set up filter action after rewrites
      
         - net: ipa: command payloads already mapped
      
        Misc:
      
         - s390/ism: fix incorrect system EID, it's okay to change since it
           was added in current release
      
         - vsock: use ns_capable_noaudit() on socket create to suppress false
           positive audit messages"
      
      * tag 'net-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (36 commits)
        r8169: fix issue with forced threading in combination with shared interrupts
        netem: fix zero division in tabledist
        ibmvnic: fix ibmvnic_set_mac
        mptcp: add missing memory scheduling in the rx path
        tipc: fix memory leak caused by tipc_buf_append()
        gtp: fix an use-before-init in gtp_newlink()
        net: protect tcf_block_unbind with block lock
        ibmveth: Fix use of ibmveth in a bridge.
        net/sched: act_mpls: Add softdep on mpls_gso.ko
        ravb: Fix bit fields checking in ravb_hwtstamp_get()
        devlink: Unlock on error in dumpit()
        devlink: Fix some error codes
        chelsio/chtls: fix memory leaks in CPL handlers
        chelsio/chtls: fix deadlock issue
        net: hns3: Clear the CMDQ registers before unmapping BAR region
        bnxt_en: Send HWRM_FUNC_RESET fw command unconditionally.
        bnxt_en: Check abort error state in bnxt_open_nic().
        bnxt_en: Re-write PCI BARs after PCI fatal error.
        bnxt_en: Invoke cancel_delayed_work_sync() for PFs also.
        bnxt_en: Fix regression in workqueue cleanup logic in bnxt_remove_one().
        ...
      934291ff
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · b9c0f4bd
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "The good news is people are testing rc1 in the RDMA world - the bad
        news is testing of the for-next area is not as good as I had hoped, as
        we really should have caught at least the rdma_connect_locked() issue
        before now.
      
        Notable merge window regressions that didn't get caught/fixed in time
        for rc1:
      
         - Fix in kernel users of rxe, they were broken by the rapid fix to
           undo the uABI breakage in rxe from another patch
      
         - EFA userspace needs to read the GID table but was broken with the
           new GID table logic
      
         - Fix user triggerable deadlock in mlx5 using devlink reload
      
         - Fix deadlock in several ULPs using rdma_connect from the CM handler
           callbacks
      
         - Memory leak in qedr"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/qedr: Fix memory leak in iWARP CM
        RDMA: Add rdma_connect_locked()
        RDMA/uverbs: Fix false error in query gid IOCTL
        RDMA/mlx5: Fix devlink deadlock on net namespace deletion
        RDMA/rxe: Fix small problem in network_type patch
      b9c0f4bd
    • Heiner Kallweit's avatar
      r8169: fix issue with forced threading in combination with shared interrupts · 2734a24e
      Heiner Kallweit authored
      As reported by Serge flag IRQF_NO_THREAD causes an error if the
      interrupt is actually shared and the other driver(s) don't have this
      flag set. This situation can occur if a PCI(e) legacy interrupt is
      used in combination with forced threading.
      There's no good way to deal with this properly, therefore we have to
      remove flag IRQF_NO_THREAD. For fixing the original forced threading
      issue switch to napi_schedule().
      
      Fixes: 424a646e
      
       ("r8169: fix operation under forced interrupt threading")
      Link: https://www.spinics.net/lists/netdev/msg694960.html
      Reported-by: default avatarSerge Belyshev <belyshev@depni.sinp.msu.ru>
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Tested-by: default avatarSerge Belyshev <belyshev@depni.sinp.msu.ru>
      Link: https://lore.kernel.org/r/b5b53bfe-35ac-3768-85bf-74d1290cf394@gmail.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2734a24e
    • Aleksandr Nogikh's avatar
      netem: fix zero division in tabledist · eadd1bef
      Aleksandr Nogikh authored
      Currently it is possible to craft a special netlink RTM_NEWQDISC
      command that can result in jitter being equal to 0x80000000. It is
      enough to set the 32 bit jitter to 0x02000000 (it will later be
      multiplied by 2^6) or just set the 64 bit jitter via
      TCA_NETEM_JITTER64. This causes an overflow during the generation of
      uniformly distributed numbers in tabledist(), which in turn leads to
      division by zero (sigma != 0, but sigma * 2 is 0).
      
      The related fragment of code needs 32-bit division - see commit
      9b0ed89 ("netem: remove unnecessary 64 bit modulus"), so switching to
      64 bit is not an option.
      
      Fix the issue by keeping the value of jitter within the range that can
      be adequately handled by tabledist() - [0;INT_MAX]. As negative std
      deviation makes no sense, take the absolute value of the passed value
      and cap it at INT_MAX. Inside tabledist(), switch to unsigned 32 bit
      arithmetic in order to prevent overflows.
      
      Fixes: 1da177e4
      
       ("Linux-2.6.12-rc2")
      Signed-off-by: default avatarAleksandr Nogikh <nogikh@google.com>
      Reported-by: default avatar <syzbot+ec762a6342ad0d3c0d8f@syzkaller.appspotmail.com>
      Acked-by: default avatarStephen Hemminger <stephen@networkplumber.org>
      Link: https://lore.kernel.org/r/20201028170731.1383332-1-aleksandrnogikh@gmail.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      eadd1bef
    • Lijun Pan's avatar
      ibmvnic: fix ibmvnic_set_mac · 8fc3672a
      Lijun Pan authored
      Jakub Kicinski brought up a concern in ibmvnic_set_mac().
      ibmvnic_set_mac() does this:
      
      	ether_addr_copy(adapter->mac_addr, addr->sa_data);
      	if (adapter->state != VNIC_PROBED)
      		rc = __ibmvnic_set_mac(netdev, addr->sa_data);
      
      So if state == VNIC_PROBED, the user can assign an invalid address to
      adapter->mac_addr, and ibmvnic_set_mac() will still return 0.
      
      The fix is to validate ethernet address at the beginning of
      ibmvnic_set_mac(), and move the ether_addr_copy to
      the case of "adapter->state != VNIC_PROBED".
      
      Fixes: c26eba03
      
       ("ibmvnic: Update reset infrastructure to support tunable parameters")
      Signed-off-by: default avatarLijun Pan <ljp@linux.ibm.com>
      Link: https://lore.kernel.org/r/20201027220456.71450-1-ljp@linux.ibm.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      8fc3672a
    • Paolo Abeni's avatar
      mptcp: add missing memory scheduling in the rx path · 9c3f94e1
      Paolo Abeni authored
      When moving the skbs from the subflow into the msk receive
      queue, we must schedule there the required amount of memory.
      
      Try to borrow the required memory from the subflow, if needed,
      so that we leverage the existing TCP heuristic.
      
      Fixes: 6771bfd9
      
       ("mptcp: update mptcp ack sequence from work queue")
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Link: https://lore.kernel.org/r/f6143a6193a083574f11b00dbf7b5ad151bc4ff4.1603810630.git.pabeni@redhat.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      9c3f94e1
    • Ville Syrjälä's avatar
      drm/i915: Reject 90/270 degree rotated initial fbs · 61334ed2
      Ville Syrjälä authored
      
      
      We don't currently handle the initial fb readout correctly
      for 90/270 degree rotated scanout. Reject it.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201020194330.28568-1-ville.syrjala@linux.intel.com
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      (cherry picked from commit a40a8305
      
      )
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      61334ed2
    • Ville Syrjälä's avatar
      drm/i915: Restore ILK-M RPS support · 5cbd7685
      Ville Syrjälä authored
      Restore RPS for ILK-M. We lost it when an extra HAS_RPS()
      check appeared in intel_rps_enable().
      
      Unfortunaltey this just makes the performance worse on my
      ILK because intel_ips insists on limiting the GPU freq to
      the minimum. If we don't do the RPS init then intel_ips will
      not limit the frequency for whatever reason. Either it can't
      get at some required information and thus makes wrong decisions,
      or we mess up some weights/etc. and cause it to make the wrong
      decisions when RPS init has been done, or the entire thing is
      just wrong. Would require a bunch of reverse engineering to
      figure out what's going on.
      
      Cc: stable@vger.kernel.org
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Fixes: 9c878557
      
       ("drm/i915/gt: Use the RPM config register to determine clk frequencies")
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201021131443.25616-1-ville.syrjala@linux.intel.com
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      (cherry picked from commit 2bf06370
      
      )
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      5cbd7685
    • Matthew Auld's avatar
      drm/i915/region: fix max size calculation · 09a729b1
      Matthew Auld authored
      We are incorrectly limiting the max allocation size as per the mm
      max_order, which is effectively the largest power-of-two that we can fit
      in the region size. However, it's normal to setup the region or
      allocator with a non-power-of-two size(for example 3G), which we should
      already handle correctly, except it seems for the early too-big-check.
      
      v2: make sure we also exercise the I915_BO_ALLOC_CONTIGUOUS path, which
      is quite different, since for that we are actually limited by the
      largest power-of-two that we can fit within the region size. (Chris)
      
      Fixes: b908be54
      
       ("drm/i915: support creating LMEM objects")
      Signed-off-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: CQ Tang <cq.tang@intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201021103606.241395-1-matthew.auld@intel.com
      (cherry picked from commit 83ebef47
      
      )
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      09a729b1
    • Gustavo A. R. Silva's avatar
      include: jhash/signal: Fix fall-through warnings for Clang · 4169e889
      Gustavo A. R. Silva authored
      In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
      add break statements instead of letting the code fall through to the
      next case.
      
      This patch adds four break statements that, together, fix almost 40,000
      warnings when building Linux 5.10-rc1 with Clang 12.0.0 and this[1] change
      reverted. Notice that in order to enable -Wimplicit-fallthrough for Clang,
      such change[1] is meant to be reverted at some point. So, this patch helps
      to move in that direction.
      
      Something important to mention is that there is currently a discrepancy
      between GCC and Clang when dealing with switch fall-through to empty case
      statements or to cases that only contain a break/continue/return
      statement[2][3][4].
      
      Now that the -Wimplicit-fallthrough option has been globally enabled[5],
      any compiler should really warn on missing either a fallthrough annotation
      or any of the other case-terminating statements (break/continue/return/
      goto) when falling through to the next case statement. Making exceptions
      to this introduces variation in case handling which may continue to lead
      to bugs, misunderstandings, and a general lack of robustness. The point
      of enabling options like -Wimplicit-fallthrough is to prevent human error
      and aid developers in spotting bugs before their code is even built/
      submitted/committed, therefore eliminating classes of bugs. So, in order
      to really accomplish this, we should, and can, move in the direction of
      addressing any error-prone scenarios and get rid of the unintentional
      fallthrough bug-class in the kernel, entirely, even if there is some minor
      redundancy. Better to have explicit case-ending statements than continue to
      have exceptions where one must guess as to the right result. The compiler
      will eliminate any actual redundancy.
      
      [1] commit e2079e93 ("kbuild: Do not enable -Wimplicit-fallthrough for clang for now")
      [2] https://github.com/ClangBuiltLinux/linux/issues/636
      [3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91432
      [4] https://godbolt.org/z/xgkvIh
      [5] commit a035d552
      
       ("Makefile: Globally enable fall-through warning")
      
      Co-developed-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      4169e889
    • Linus Torvalds's avatar
      Merge tag 'afs-fixes-20201029' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 598a5976
      Linus Torvalds authored
      Pull AFS fixes from David Howells:
      
       - Fix copy_file_range() to an afs file now returning EINVAL if the
         splice_write file op isn't supplied.
      
       - Fix a deref-before-check in afs_unuse_cell().
      
       - Fix a use-after-free in afs_xattr_get_acl().
      
       - Fix afs to not try to clear PG_writeback when laundering a page.
      
       - Fix afs to take a ref on a page that it sets PG_private on and to
         drop that ref when clearing PG_private. This is done through recently
         added helpers.
      
       - Fix a page leak if write_begin() fails.
      
       - Fix afs_write_begin() to not alter the dirty region info stored in
         page->private, but rather do this in afs_write_end() instead when we
         know what we actually changed.
      
       - Fix afs_invalidatepage() to alter the dirty region info on a page
         when partial page invalidation occurs so that we don't inadvertantly
         include a span of zeros that will get written back if a page gets
         laundered due to a remote 3rd-party induced invalidation.
      
         We mustn't, however, reduce the dirty region if the page has been
         seen to be mapped (ie. we got called through the page_mkwrite vector)
         as the page might still be mapped and we might lose data if the file
         is extended again.
      
       - Fix the dirty region info to have a lower resolution if the size of
         the page is too large for this to be encoded (e.g. powerpc32 with 64K
         pages).
      
         Note that this might not be the ideal way to handle this, since it
         may allow some leakage of undirtied zero bytes to the server's copy
         in the case of a 3rd-party conflict.
      
      To aid the last two fixes, two additional changes:
      
       - Wrap the manipulations of the dirty region info stored in
         page->private into helper functions.
      
       - Alter the encoding of the dirty region so that the region bounds can
         be stored with one fewer bit, making a bit available for the
         indication of mappedness.
      
      * tag 'afs-fixes-20201029' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: Fix dirty-region encoding on ppc32 with 64K pages
        afs: Fix afs_invalidatepage to adjust the dirty region
        afs: Alter dirty range encoding in page->private
        afs: Wrap page->private manipulations in inline functions
        afs: Fix where page->private is set during write
        afs: Fix page leak on afs_write_begin() failure
        afs: Fix to take ref on page when PG_private is set
        afs: Fix afs_launder_page to not clear PG_writeback
        afs: Fix a use after free in afs_xattr_get_acl()
        afs: Fix tracing deref-before-check
        afs: Fix copy_file_range()
      598a5976
    • Tung Nguyen's avatar
      tipc: fix memory leak caused by tipc_buf_append() · ceb1eb2f
      Tung Nguyen authored
      Commit ed42989e ("tipc: fix the skb_unshare() in tipc_buf_append()")
      replaced skb_unshare() with skb_copy() to not reduce the data reference
      counter of the original skb intentionally. This is not the correct
      way to handle the cloned skb because it causes memory leak in 2
      following cases:
       1/ Sending multicast messages via broadcast link
        The original skb list is cloned to the local skb list for local
        destination. After that, the data reference counter of each skb
        in the original list has the value of 2. This causes each skb not
        to be freed after receiving ACK:
        tipc_link_advance_transmq()
        {
         ...
         /* release skb */
         __skb_unlink(skb, &l->transmq);
         kfree_skb(skb); <-- memory exists after being freed
        }
      
       2/ Sending multicast messages via replicast link
        Similar to the above case, each skb cannot be freed after purging
        the skb list:
        tipc_mcast_xmit()
        {
         ...
         __skb_queue_purge(pkts); <-- memory exists after being freed
        }
      
      This commit fixes this issue by using skb_unshare() instead. Besides,
      to avoid use-after-free error reported by KASAN, the pointer to the
      fragment is set to NULL before calling skb_unshare() to make sure that
      the original skb is not freed after freeing the fragment 2 times in
      case skb_unshare() returns NULL.
      
      Fixes: ed42989e
      
       ("tipc: fix the skb_unshare() in tipc_buf_append()")
      Acked-by: default avatarJon Maloy <jmaloy@redhat.com>
      Reported-by: default avatarThang Hoang Ngo <thang.h.ngo@dektech.com.au>
      Signed-off-by: default avatarTung Nguyen <tung.q.nguyen@dektech.com.au>
      Reviewed-by: default avatarXin Long <lucien.xin@gmail.com>
      Acked-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Link: https://lore.kernel.org/r/20201027032403.1823-1-tung.q.nguyen@dektech.com.au
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ceb1eb2f
    • Masahiro Fujiwara's avatar
      gtp: fix an use-before-init in gtp_newlink() · 51467431
      Masahiro Fujiwara authored
      *_pdp_find() from gtp_encap_recv() would trigger a crash when a peer
      sends GTP packets while creating new GTP device.
      
      RIP: 0010:gtp1_pdp_find.isra.0+0x68/0x90 [gtp]
      <SNIP>
      Call Trace:
       <IRQ>
       gtp_encap_recv+0xc2/0x2e0 [gtp]
       ? gtp1_pdp_find.isra.0+0x90/0x90 [gtp]
       udp_queue_rcv_one_skb+0x1fe/0x530
       udp_queue_rcv_skb+0x40/0x1b0
       udp_unicast_rcv_skb.isra.0+0x78/0x90
       __udp4_lib_rcv+0x5af/0xc70
       udp_rcv+0x1a/0x20
       ip_protocol_deliver_rcu+0xc5/0x1b0
       ip_local_deliver_finish+0x48/0x50
       ip_local_deliver+0xe5/0xf0
       ? ip_protocol_deliver_rcu+0x1b0/0x1b0
      
      gtp_encap_enable() should be called after gtp_hastable_new() otherwise
      *_pdp_find() will access the uninitialized hash table.
      
      Fixes: 1e3a3abd
      
       ("gtp: make GTP sockets in gtp_newlink optional")
      Signed-off-by: default avatarMasahiro Fujiwara <fujiwara.masahiro@gmail.com>
      Link: https://lore.kernel.org/r/20201027114846.3924-1-fujiwara.masahiro@gmail.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      51467431