1. 15 12月, 2020 15 次提交
    • T
      drm: automatic legacy gamma support · 6ca2ab80
      Tomi Valkeinen 提交于
      To support legacy gamma ioctls the drivers need to set
      drm_crtc_funcs.gamma_set either to a custom implementation or to
      drm_atomic_helper_legacy_gamma_set. Most of the atomic drivers do the
      latter.
      
      We can simplify this by making the core handle it automatically.
      
      Move the drm_atomic_helper_legacy_gamma_set() functionality into
      drm_color_mgmt.c to make drm_mode_gamma_set_ioctl() use
      drm_crtc_funcs.gamma_set if set or GAMMA_LUT property if not.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: NPhilippe Cornu <philippe.cornu@st.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201211114237.213288-2-tomi.valkeinen@ti.com
      6ca2ab80
    • Z
      udlfb: Fix memory leak in dlfb_usb_probe · 5c0e4110
      Zqiang 提交于
      The dlfb_alloc_urb_list function is called in dlfb_usb_probe function,
      after that if an error occurs, the dlfb_free_urb_list function need to
      be called.
      
      BUG: memory leak
      unreferenced object 0xffff88810adde100 (size 32):
        comm "kworker/1:0", pid 17, jiffies 4294947788 (age 19.520s)
        hex dump (first 32 bytes):
          10 30 c3 0d 81 88 ff ff c0 fa 63 12 81 88 ff ff  .0........c.....
          00 30 c3 0d 81 88 ff ff 80 d1 3a 08 81 88 ff ff  .0........:.....
        backtrace:
          [<0000000019512953>] kmalloc include/linux/slab.h:552 [inline]
          [<0000000019512953>] kzalloc include/linux/slab.h:664 [inline]
          [<0000000019512953>] dlfb_alloc_urb_list drivers/video/fbdev/udlfb.c:1892 [inline]
          [<0000000019512953>] dlfb_usb_probe.cold+0x289/0x988 drivers/video/fbdev/udlfb.c:1704
          [<0000000072160152>] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
          [<00000000a8d6726f>] really_probe+0x159/0x480 drivers/base/dd.c:554
          [<00000000c3ce4b0e>] driver_probe_device+0x84/0x100 drivers/base/dd.c:738
          [<00000000e942e01c>] __device_attach_driver+0xee/0x110 drivers/base/dd.c:844
          [<00000000de0a5a5c>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:431
          [<00000000463fbcb4>] __device_attach+0x122/0x250 drivers/base/dd.c:912
          [<00000000b881a711>] bus_probe_device+0xc6/0xe0 drivers/base/bus.c:491
          [<00000000364bbda5>] device_add+0x5ac/0xc30 drivers/base/core.c:2936
          [<00000000eecca418>] usb_set_configuration+0x9de/0xb90 drivers/usb/core/message.c:2159
          [<00000000edfeca2d>] usb_generic_driver_probe+0x8c/0xc0 drivers/usb/core/generic.c:238
          [<000000001830872b>] usb_probe_device+0x5c/0x140 drivers/usb/core/driver.c:293
          [<00000000a8d6726f>] really_probe+0x159/0x480 drivers/base/dd.c:554
          [<00000000c3ce4b0e>] driver_probe_device+0x84/0x100 drivers/base/dd.c:738
          [<00000000e942e01c>] __device_attach_driver+0xee/0x110 drivers/base/dd.c:844
          [<00000000de0a5a5c>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:431
      
      Reported-by: syzbot+c9e365d7f450e8aa615d@syzkaller.appspotmail.com
      Signed-off-by: NZqiang <qiang.zhang@windriver.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201215063022.16746-1-qiang.zhang@windriver.com
      5c0e4110
    • T
      drm/hisilicon: Fix use-after-free · c855af2f
      Tian Tao 提交于
      Fix the problem of dev being released twice.
      ------------[ cut here ]------------
      refcount_t: underflow; use-after-free.
      WARNING: CPU: 75 PID: 15700 at lib/refcount.c:28 refcount_warn_saturate+0xd4/0x150
      CPU: 75 PID: 15700 Comm: rmmod Tainted: G            E     5.10.0-rc3+ #3
      Hardware name: Huawei TaiShan 200 (Model 2280)/BC82AMDDA, BIOS 0.88 07/24/2019
      pstate: 40400009 (nZcv daif +PAN -UAO -TCO BTYPE=--)
      pc : refcount_warn_saturate+0xd4/0x150
      lr : refcount_warn_saturate+0xd4/0x150
      sp : ffff2028150cbc00
      x29: ffff2028150cbc00 x28: ffff2028150121c0
      x27: 0000000000000000 x26: 0000000000000000
      x25: 0000000000000000 x24: 0000000000000003
      x23: 0000000000000000 x22: ffff2028150cbc90
      x21: ffff2020038a30a8 x20: ffff2028150cbc90
      x19: ffff0020cd938020 x18: 0000000000000010
      x17: 0000000000000000 x16: 0000000000000000
      x15: ffffffffffffffff x14: ffff2028950cb88f
      x13: ffff2028150cb89d x12: 0000000000000000
      x11: 0000000005f5e0ff x10: ffff2028150cb800
      x9 : 00000000ffffffd0 x8 : 75203b776f6c6672
      x7 : ffff800011a6f7c8 x6 : 0000000000000001
      x5 : 0000000000000000 x4 : 0000000000000000
      x3 : 0000000000000000 x2 : ffff202ffe2f9dc0
      x1 : ffffa02fecf40000 x0 : 0000000000000026
      Call trace:
       refcount_warn_saturate+0xd4/0x150
       devm_drm_dev_init_release+0x50/0x70
       devm_action_release+0x20/0x30
       release_nodes+0x13c/0x218
       devres_release_all+0x80/0x170
       device_release_driver_internal+0x128/0x1f0
       driver_detach+0x6c/0xe0
       bus_remove_driver+0x74/0x100
       driver_unregister+0x34/0x60
       pci_unregister_driver+0x24/0xd8
       hibmc_pci_driver_exit+0x14/0xe858 [hibmc_drm]
       __arm64_sys_delete_module+0x1fc/0x2d0
       el0_svc_common.constprop.3+0xa8/0x188
       do_el0_svc+0x80/0xa0
       el0_sync_handler+0x8c/0xb0
       el0_sync+0x15c/0x180
      CPU: 75 PID: 15700 Comm: rmmod Tainted: G            E     5.10.0-rc3+ #3
      Hardware name: Huawei TaiShan 200 (Model 2280)/BC82AMDDA, BIOS 0.88 07/24/2019
      Call trace:
       dump_backtrace+0x0/0x208
       show_stack+0x2c/0x40
       dump_stack+0xd8/0x10c
       __warn+0xac/0x128
       report_bug+0xcc/0x180
       bug_handler+0x24/0x78
       call_break_hook+0x80/0xa0
       brk_handler+0x28/0x68
       do_debug_exception+0x9c/0x148
       el1_sync_handler+0x7c/0x128
       el1_sync+0x80/0x100
       refcount_warn_saturate+0xd4/0x150
       devm_drm_dev_init_release+0x50/0x70
       devm_action_release+0x20/0x30
       release_nodes+0x13c/0x218
       devres_release_all+0x80/0x170
       device_release_driver_internal+0x128/0x1f0
       driver_detach+0x6c/0xe0
       bus_remove_driver+0x74/0x100
       driver_unregister+0x34/0x60
       pci_unregister_driver+0x24/0xd8
       hibmc_pci_driver_exit+0x14/0xe858 [hibmc_drm]
       __arm64_sys_delete_module+0x1fc/0x2d0
       el0_svc_common.constprop.3+0xa8/0x188
       do_el0_svc+0x80/0xa0
       el0_sync_handler+0x8c/0xb0
       el0_sync+0x15c/0x180
      ---[ end trace 00718630d6e5ff18 ]---
      Signed-off-by: NTian Tao <tiantao6@hisilicon.com>
      Acked-by: NThomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/1607941973-32287-1-git-send-email-tiantao6@hisilicon.com
      c855af2f
    • M
      drm/vc4: kms: Convert to atomic helpers · f3c420fe
      Maxime Ripard 提交于
      Now that the semaphore is gone, our atomic_commit implementation is
      basically drm_atomic_helper_commit with a somewhat custom commit_tail,
      the main difference being that we're using wait_for_flip_done instead of
      wait_for_vblanks used in the drm_atomic_helper_commit_tail helper.
      
      Let's switch to using drm_atomic_helper_commit.
      Acked-by: NThomas Zimmermann <tzimmermann@suse.de>
      Signed-off-by: NMaxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201204151138.1739736-8-maxime@cerno.tech
      f3c420fe
    • M
      drm/vc4: kms: Remove async modeset semaphore · 82faa327
      Maxime Ripard 提交于
      Now that we have proper ordering guaranteed by the previous patch, the
      semaphore is redundant and can be removed.
      Acked-by: NThomas Zimmermann <tzimmermann@suse.de>
      Signed-off-by: NMaxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201204151138.1739736-7-maxime@cerno.tech
      82faa327
    • M
      drm/vc4: kms: Remove unassigned_channels from the HVS state · 03b03efe
      Maxime Ripard 提交于
      The HVS state now has both unassigned_channels that reflects the
      channels that are not used in the associated state, and the in_use
      boolean for each channel that says whether or not a particular channel
      is in use.
      
      Both express pretty much the same thing, and we need the in_use variable
      to properly track the commits, so let's get rid of unassigned_channels.
      Suggested-by: NThomas Zimmermann <tzimmermann@suse.de>
      Signed-off-by: NMaxime Ripard <maxime@cerno.tech>
      Reviewed-by: NThomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201204151138.1739736-6-maxime@cerno.tech
      03b03efe
    • M
      drm/vc4: kms: Wait on previous FIFO users before a commit · 9ec03d7f
      Maxime Ripard 提交于
      If we're having two subsequent, non-blocking, commits on two different
      CRTCs that share no resources, there's no guarantee on the order of
      execution of both commits.
      
      However, the second one will consider the first one as the old state,
      and will be in charge of freeing it once that second commit is done.
      
      If the first commit happens after that second commit, it might access
      some resources related to its state that has been freed, resulting in a
      use-after-free bug.
      
      The standard DRM objects are protected against this, but our HVS private
      state isn't so let's make sure we wait for all the previous FIFO users
      to finish their commit before going with our own.
      Signed-off-by: NMaxime Ripard <maxime@cerno.tech>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201204151138.1739736-5-maxime@cerno.tech
      9ec03d7f
    • M
      drm/vc4: Simplify a bit the global atomic_check · d62a8ed7
      Maxime Ripard 提交于
      When we can't allocate a new channel, we can simply return instead of
      having to handle both cases, and that simplifies a bit the code.
      Reviewed-by: NThomas Zimmermann <tzimmermann@suse.de>
      Signed-off-by: NMaxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201204151138.1739736-4-maxime@cerno.tech
      d62a8ed7
    • M
      drm: Document use-after-free gotcha with private objects · 27125e86
      Maxime Ripard 提交于
      The private objects have a gotcha that could result in a use-after-free,
      make sure it's properly documented.
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NMaxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201204151138.1739736-3-maxime@cerno.tech
      27125e86
    • M
      drm: Introduce an atomic_commit_setup function · ddadd408
      Maxime Ripard 提交于
      Private objects storing a state shared across all CRTCs need to be
      carefully handled to avoid a use-after-free issue.
      
      The proper way to do this to track all the commits using that shared
      state and wait for the previous commits to be done before going on with
      the current one to avoid the reordering of commits that could occur.
      
      However, this commit setup needs to be done after
      drm_atomic_helper_setup_commit(), because before the CRTC commit
      structure hasn't been allocated before, and before the workqueue is
      scheduled, because we would be potentially reordered already otherwise.
      
      That means that drivers currently have to roll their own
      drm_atomic_helper_commit() function, even though it would be identical
      if not for the commit setup.
      
      Let's introduce a hook to do so that would be called as part of
      drm_atomic_helper_commit, allowing us to reuse the atomic helpers.
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Suggested-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NMaxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201204151138.1739736-2-maxime@cerno.tech
      ddadd408
    • M
      Merge drm/drm-next into drm-misc-next · ae75a043
      Maarten Lankhorst 提交于
      Required backmerge since we will be based on top of v5.11, and there
      has been a request to backmerge already to upstream some features.
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      ae75a043
    • D
      Merge tag 'drm-misc-next-2020-11-27-1' of git://anongit.freedesktop.org/drm/drm-misc into drm-next · 5fbd41d3
      Daniel Vetter 提交于
      drm-misc-next for 5.11:
      
      UAPI Changes:
      
      Cross-subsystem Changes:
      
       * char/agp: Disable frontend without CONFIG_DRM_LEGACY
       * mm: Fix fput in mmap error path; Introduce vma_set_file() to change
         vma->vm_file
      
      Core Changes:
      
       * dma-buf: Use sgtables in system heap; Move heap helpers to CMA-heap code;
         Skip sync for unmapped buffers; Alloc higher order pages is available;
         Respect num_fences when initializing shared fence list
       * doc: Improvements around DRM modes and SCALING_FILTER
       * Pass full state to connector atomic functions + callee updates
       * Cleanups
       * shmem: Map pages with caching by default; Cleanups
       * ttm: Fix DMA32 for global page pool
       * fbdev: Cleanups
       * fb-helper: Update framebuffer after userspace writes; Unmap console buffer
         during shutdown; Rework damage handling of shadow framebuffer
      
      Driver Changes:
      
       * amdgpu: Multi-hop fixes, Clenaups
       * imx: Fix rotation for Vivante tiled formats; Support nearest-neighour
         skaling; Cleanups
       * mcde: Fix RGB formats; Support DPI output; Cleanups
       * meson: HDMI clock fixes
       * panel: Add driver and bindings for Innolux N125HCE-GN1
       * panel/s6e63m0: More backlight levels; Fix init; Cleanups
       * via: Clenunps
       * virtio: Use fence ID for handling fences; Cleanups
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      From: Thomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201127083055.GA29139@linux-uq9g
      5fbd41d3
    • D
      drm/panel: khadas: Fix error code in khadas_ts050_panel_add() · 91def3cc
      Dan Carpenter 提交于
      There is a copy and paste bug so it didn't return the correct error
      code.
      
      Fixes: b2152121 ("drm: panel: add Khadas TS050 panel driver")
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NNeil Armstrong <narmstrong@baylibre.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/X9NEfmgGilaXJs2R@mwanda
      91def3cc
    • D
      drm/amdkfd: fix ttm size refactor fallout · 8c392cd5
      Daniel Vetter 提交于
      I guess Christian didn't compile test amdkfd.
      Acked-by: NAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: NFelix Kuehling <Felix.Kuehling@amd.com>
      Fixes: e11bfb99 ("drm/ttm: cleanup BO size handling v3")
      Cc: Christian König <christian.koenig@amd.com>
      Cc: Huang Rui <ray.huang@amd.com> (v1)
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Felix Kuehling <Felix.Kuehling@amd.com>
      Cc: amd-gfx@lists.freedesktop.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201214191725.3899147-1-daniel.vetter@ffwll.ch
      8c392cd5
    • L
      Merge tag 'drm-next-2020-12-11' of git://anongit.freedesktop.org/drm/drm · 1d36dffa
      Linus Torvalds 提交于
      Pull drm updates from Dave Airlie:
       "Not a huge amount of big things here, AMD has support for a few new HW
        variants (vangogh, green sardine, dimgrey cavefish), Intel has some
        more DG1 enablement. We have a few big reworks of the TTM layers and
        interfaces, GEM and atomic internal API reworks cross tree. fbdev is
        marked orphaned in here as well to reflect the current reality.
      
        core:
         - documentation updates
         - deprecate DRM_FORMAT_MOD_NONE
         - atomic crtc enable/disable rework
         - GEM convert drivers to gem object functions
         - remove SCATTER_LIST_MAX_SEGMENT
      
        sched:
         - avoid infinite waits
      
        ttm:
         - remove AGP support
         - don't modify caching for swapout
         - ttm pinning rework
         - major TTM reworks
         - new backend allocator
         - multihop support
      
        vram-helper:
         - top down BO placement fix
         - TTM changes
         - GEM object support
      
        displayport:
         - DP 2.0 DPCD prep work
         - DP MST extended DPCD caps
      
        fbdev:
         - mark as orphaned
      
        amdgpu:
         - Initial Vangogh support
         - Green Sardine support
         - Dimgrey Cavefish support
         - SG display support for renoir
         - SMU7 improvements
         - gfx9+ modiifier support
         - CI BACO fixes
      
        radeon:
         - expose voltage via hwmon on SUMO
      
        amdkfd:
         - fix unique id handling
      
        i915:
         - more DG1 enablement
         - bigjoiner support
         - integer scaling filter support
         - async flip support
         - ICL+ DSI command mode
         - Improve display shutdown
         - Display refactoring
         - eLLC machine fbdev loading fix
         - dma scatterlist fixes
         - TGL hang fixes
         - eLLC display buffer caching on SKL+
         - MOCS PTE seeting for gen9+
      
        msm:
         - Shutdown hook
         - GPU cooling device support
         - DSI 7nm and 10nm phy/pll updates
         - sm8150/sm2850 DPU support
         - GEM locking re-work
         - LLCC system cache support
      
        aspeed:
         - sysfs output config support
      
        ast:
         - LUT fix
         - new display mode
      
        gma500:
         - remove 2d framebuffer accel
      
        panfrost:
         - move gpu reset to a worker
      
        exynos:
         - new HDMI mode support
      
        mediatek:
         - MT8167 support
         - yaml bindings
         - MIPI DSI phy code moved
      
        etnaviv:
         - new perf counter
         - more lockdep annotation
      
        hibmc:
         - i2c DDC support
      
        ingenic:
         - pixel clock reset fix
         - reserved memory support
         - allow both DMA channels at once
         - different pixel format support
         - 30/24/8-bit palette modes
      
        tilcdc:
         - don't keep vblank irq enabled
      
        vc4:
         - new maintainer added
         - DSI registration fix
      
        virtio:
         - blob resource support
         - host visible and cross-device support
         - uuid api support"
      
      * tag 'drm-next-2020-12-11' of git://anongit.freedesktop.org/drm/drm: (1754 commits)
        drm/amdgpu: Initialise drm_gem_object_funcs for imported BOs
        drm/amdgpu: fix size calculation with stolen vga memory
        drm/amdgpu: remove amdgpu_ttm_late_init  and amdgpu_bo_late_init
        drm/amdgpu: free the pre-OS console framebuffer after the first modeset
        drm/amdgpu: enable runtime pm using BACO on CI dGPUs
        drm/amdgpu/cik: enable BACO reset on Bonaire
        drm/amd/pm: update smu10.h WORKLOAD_PPLIB setting for raven
        drm/amd/pm: remove one unsupported smu function for vangogh
        drm/amd/display: setup system context for APUs
        drm/amd/display: add S/G support for Vangogh
        drm/amdkfd: Fix leak in dmabuf import
        drm/amdgpu: use AMDGPU_NUM_VMID when possible
        drm/amdgpu: fix sdma instance fw version and feature version init
        drm/amd/pm: update driver if version for dimgrey_cavefish
        drm/amd/display: 3.2.115
        drm/amd/display: [FW Promotion] Release 0.0.45
        drm/amd/display: Revert DCN2.1 dram_clock_change_latency update
        drm/amd/display: Enable gpu_vm_support for dcn3.01
        drm/amd/display: Fixed the audio noise during mode switching with HDCP mode on
        drm/amd/display: Add wm table for Renoir
        ...
      1d36dffa
  2. 14 12月, 2020 5 次提交
    • C
      drm/ttm: cleanup BO size handling v3 · e11bfb99
      Christian König 提交于
      Based on an idea from Dave, but cleaned up a bit.
      
      We had multiple fields for essentially the same thing.
      
      Now bo->base.size is the original size of the BO in
      arbitrary units, usually bytes.
      
      bo->mem.num_pages is the size in number of pages in the
      resource domain of bo->mem.mem_type.
      
      v2: use the GEM object size instead of the BO size
      v3: fix printks in some places
      Signed-off-by: NChristian König <christian.koenig@amd.com>
      Reviewed-by: Huang Rui <ray.huang@amd.com> (v1)
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/406831/
      e11bfb99
    • T
      drm/drv: Remove invalid assignments · dc379303
      Tian Tao 提交于
      it's not necessary to assign a value of 0 to ret here, because if
      the previous functions were executed correctly, ret would be 0.
      Signed-off-by: NTian Tao <tiantao6@hisilicon.com>
      Reviewed-by: NSimon Ser <contact@emersion.fr>
      Link: https://patchwork.freedesktop.org/patch/msgid/1607653037-37785-1-git-send-email-tiantao6@hisilicon.com
      dc379303
    • L
      Linux 5.10 · 2c85ebc5
      Linus Torvalds 提交于
      2c85ebc5
    • L
      Merge tag 'x86-urgent-2020-12-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ec6f5e0e
      Linus Torvalds 提交于
      Pull x86 fixes from Thomas Gleixner:
       "A set of x86 and membarrier fixes:
      
         - Correct a few problems in the x86 and the generic membarrier
           implementation. Small corrections for assumptions about visibility
           which have turned out not to be true.
      
         - Make the PAT bits for memory encryption correct vs 4K and 2M/1G
           page table entries as they are at a different location.
      
         - Fix a concurrency issue in the the local bandwidth readout of
           resource control leading to incorrect values
      
         - Fix the ordering of allocating a vector for an interrupt. The order
           missed to respect the provided cpumask when the first attempt of
           allocating node local in the mask fails. It then tries the node
           instead of trying the full provided mask first. This leads to
           erroneous error messages and breaking the (user) supplied affinity
           request. Reorder it.
      
         - Make the INT3 padding detection in optprobe work correctly"
      
      * tag 'x86-urgent-2020-12-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kprobes: Fix optprobe to detect INT3 padding correctly
        x86/apic/vector: Fix ordering in vector assignment
        x86/resctrl: Fix incorrect local bandwidth when mba_sc is enabled
        x86/mm/mem_encrypt: Fix definition of PMD_FLAGS_DEC_WP
        membarrier: Execute SYNC_CORE on the calling thread
        membarrier: Explicitly sync remote cores when SYNC_CORE is requested
        membarrier: Add an actual barrier before rseq_preempt()
        x86/membarrier: Get rid of a dubious optimization
      ec6f5e0e
    • L
      Merge tag 'block-5.10-2020-12-12' of git://git.kernel.dk/linux-block · d2360a39
      Linus Torvalds 提交于
      Pull block fixes from Jens Axboe:
       "This should be it for 5.10.
      
        Mike and Song looked into the warning case, and thankfully it appears
        the fix was pretty trivial - we can just change the md device chunk
        type to unsigned int to get rid of it. They cannot currently be < 0,
        and nobody is checking for that either.
      
        We're reverting the discard changes as the corruption reports came in
        very late, and there's just no time to attempt to deal with it at this
        point. Reverting the changes in question is the right call for 5.10"
      
      * tag 'block-5.10-2020-12-12' of git://git.kernel.dk/linux-block:
        md: change mddev 'chunk_sectors' from int to unsigned
        Revert "md: add md_submit_discard_bio() for submitting discard bio"
        Revert "md/raid10: extend r10bio devs to raid disks"
        Revert "md/raid10: pull codes that wait for blocked dev into one function"
        Revert "md/raid10: improve raid10 discard request"
        Revert "md/raid10: improve discard request for far layout"
        Revert "dm raid: remove unnecessary discard limits for raid10"
      d2360a39
  3. 13 12月, 2020 8 次提交
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 6bff9bb8
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "Five small fixes.  Four in drivers:
      
         - hisi_sas: fix internal queue timeout
      
         - be2iscsi: revert a prior fix causing problems
      
         - bnx2i: add missing dependency
      
         - storvsc: late arriving revert of a problem fix
      
        and one in the core.
      
        The core one is a minor change to stop paying attention to the busy
        count when returning out of resources because there's a race window
        where the queue might not restart due to missing returning I/O"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        Revert "scsi: storvsc: Validate length of incoming packet in storvsc_on_channel_callback()"
        scsi: hisi_sas: Select a suitable queue for internal I/Os
        scsi: core: Fix race between handling STS_RESOURCE and completion
        scsi: be2iscsi: Revert "Fix a theoretical leak in beiscsi_create_eqs()"
        scsi: bnx2i: Requires MMU
      6bff9bb8
    • L
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 5ee595d9
      Linus Torvalds 提交于
      Pull i2c fix from Wolfram Sang:
       "Bugfix for the AT24 EEPROM driver"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        misc: eeprom: at24: fix NVMEM name with custom AT24 device name
      5ee595d9
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 7b1b868e
      Linus Torvalds 提交于
      Pull kvm fixes from Paolo Bonzini:
       "Bugfixes for ARM, x86 and tools"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        tools/kvm_stat: Exempt time-based counters
        KVM: mmu: Fix SPTE encoding of MMIO generation upper half
        kvm: x86/mmu: Use cpuid to determine max gfn
        kvm: svm: de-allocate svm_cpu_data for all cpus in svm_cpu_uninit()
        selftests: kvm/set_memory_region_test: Fix race in move region test
        KVM: arm64: Add usage of stage 2 fault lookup level in user_mem_abort()
        KVM: arm64: Fix handling of merging tables into a block entry
        KVM: arm64: Fix memory leak on stage2 update of a valid PTE
      7b1b868e
    • L
      Merge tag 'for-linus-5.10c-rc8-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · b53966ff
      Linus Torvalds 提交于
      Pull xen fixes from Juergen Gross:
       "A short series fixing a regression introduced in 5.9 for running as
        Xen dom0 on a system with NVMe backed storage"
      
      * tag 'for-linus-5.10c-rc8-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen: don't use page->lru for ZONE_DEVICE memory
        xen: add helpers for caching grant mapping pages
      b53966ff
    • L
      Merge tag 'riscv-for-linus-5.10-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · b01deddb
      Linus Torvalds 提交于
      Pull RISC-V fix from Palmer Dabbelt:
       "Just one fix. It's nothing critical, just a randconfig that wasn't
        building. That said, it does seem pretty safe and is technically a
        regression so I'm sending it along for 5.10:
      
         - define get_cycles64() all the time, as it's used by most
           configurations"
      
      * tag 'riscv-for-linus-5.10-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        RISC-V: Define get_cycles64() regardless of M-mode
      b01deddb
    • L
      Merge tag 'io_uring-5.10-2020-12-11' of git://git.kernel.dk/linux-block · 31d00f6e
      Linus Torvalds 提交于
      Pull io_uring fixes from Jens Axboe:
       "Two fixes in here, fixing issues introduced in this merge window"
      
      * tag 'io_uring-5.10-2020-12-11' of git://git.kernel.dk/linux-block:
        io_uring: fix file leak on error path of io ctx creation
        io_uring: fix mis-seting personality's creds
      31d00f6e
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 643e69af
      Linus Torvalds 提交于
      Pull input fixes from Dmitry Torokhov:
      
       - a fix for cm109 stomping on its own control URB if it tries to toggle
         buzzer immediately after userspace opens input device (found by
         syzcaller)
      
       - another fix for Raydium touchscreens that do not like splitting
         command transfers
      
       - quirks for i8042, soc_button_array, and goodix drivers to make them
         work better with certain hardware.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: goodix - add upside-down quirk for Teclast X98 Pro tablet
        Input: cm109 - do not stomp on control URB
        Input: i8042 - add Acer laptops to the i8042 reset list
        Input: cros_ec_keyb - send 'scancodes' in addition to key events
        Input: soc_button_array - add Lenovo Yoga Tablet2 1051L to the dmi_use_low_level_irq list
        Input: raydium_ts_i2c - do not split tx transactions
      643e69af
    • M
      md: change mddev 'chunk_sectors' from int to unsigned · 6ffeb1c3
      Mike Snitzer 提交于
      Commit e2782f56 ("Revert "dm raid: remove unnecessary discard
      limits for raid10"") exposed compiler warnings introduced by commit
      e0910c8e ("dm raid: fix discard limits for raid1 and raid10"):
      
      In file included from ./include/linux/kernel.h:14,
                       from ./include/asm-generic/bug.h:20,
                       from ./arch/x86/include/asm/bug.h:93,
                       from ./include/linux/bug.h:5,
                       from ./include/linux/mmdebug.h:5,
                       from ./include/linux/gfp.h:5,
                       from ./include/linux/slab.h:15,
                       from drivers/md/dm-raid.c:8:
      drivers/md/dm-raid.c: In function ‘raid_io_hints’:
      ./include/linux/minmax.h:18:28: warning: comparison of distinct pointer types lacks a cast
        (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
                                  ^~
      ./include/linux/minmax.h:32:4: note: in expansion of macro ‘__typecheck’
         (__typecheck(x, y) && __no_side_effects(x, y))
          ^~~~~~~~~~~
      ./include/linux/minmax.h:42:24: note: in expansion of macro ‘__safe_cmp’
        __builtin_choose_expr(__safe_cmp(x, y), \
                              ^~~~~~~~~~
      ./include/linux/minmax.h:51:19: note: in expansion of macro ‘__careful_cmp’
       #define min(x, y) __careful_cmp(x, y, <)
                         ^~~~~~~~~~~~~
      ./include/linux/minmax.h:84:39: note: in expansion of macro ‘min’
        __x == 0 ? __y : ((__y == 0) ? __x : min(__x, __y)); })
                                             ^~~
      drivers/md/dm-raid.c:3739:33: note: in expansion of macro ‘min_not_zero’
         limits->max_discard_sectors = min_not_zero(rs->md.chunk_sectors,
                                       ^~~~~~~~~~~~
      
      Fix this by changing the chunk_sectors member of 'struct mddev' from
      int to 'unsigned int' to match the type used for the 'chunk_sectors'
      member of 'struct queue_limits'.  Various MD code still uses 'int' but
      none of it appears to ever make use of signed int; and storing
      positive signed int in unsigned is perfectly safe.
      Reported-by: NSong Liu <songliubraving@fb.com>
      Fixes: e2782f56 ("Revert "dm raid: remove unnecessary discard limits for raid10"")
      Fixes: e0910c8e ("dm raid: fix discard limits for raid1 and raid10")
      Cc: stable@vger,kernel.org # e0910c8e was marked for stable@
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Reviewed-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      6ffeb1c3
  4. 12 12月, 2020 12 次提交
    • M
      x86/kprobes: Fix optprobe to detect INT3 padding correctly · 0d07c0ec
      Masami Hiramatsu 提交于
      Commit
      
        7705dc85 ("x86/vmlinux: Use INT3 instead of NOP for linker fill bytes")
      
      changed the padding bytes between functions from NOP to INT3. However,
      when optprobe decodes a target function it finds INT3 and gives up the
      jump optimization.
      
      Instead of giving up any INT3 detection, check whether the rest of the
      bytes to the end of the function are INT3. If all of them are INT3,
      those come from the linker. In that case, continue the optprobe jump
      optimization.
      
       [ bp: Massage commit message. ]
      
      Fixes: 7705dc85 ("x86/vmlinux: Use INT3 instead of NOP for linker fill bytes")
      Reported-by: NAdam Zabrocki <pi3@pi3.com.pl>
      Signed-off-by: NMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Reviewed-by: NSteven Rostedt (VMware) <rostedt@goodmis.org>
      Reviewed-by: NKees Cook <keescook@chromium.org>
      Cc: stable@vger.kernel.org
      Link: https://lkml.kernel.org/r/160767025681.3880685.16021570341428835411.stgit@devnote2
      0d07c0ec
    • S
      Input: goodix - add upside-down quirk for Teclast X98 Pro tablet · cffdd6d9
      Simon Beginn 提交于
      The touchscreen on the Teclast x98 Pro is also mounted upside-down in
      relation to the display orientation.
      Signed-off-by: NSimon Beginn <linux@simonmicro.de>
      Signed-off-by: NBastien Nocera <hadess@hadess.net>
      Link: https://lore.kernel.org/r/20201117004253.27A5A27EFD@localhostSigned-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      cffdd6d9
    • S
      tools/kvm_stat: Exempt time-based counters · 111d0bda
      Stefan Raspl 提交于
      The new counters halt_poll_success_ns and halt_poll_fail_ns do not count
      events. Instead they provide a time, and mess up our statistics. Therefore,
      we should exclude them.
      Removal is currently implemented with an exempt list. If more counters like
      these appear, we can think about a more general rule like excluding all
      fields name "*_ns", in case that's a standing convention.
      Signed-off-by: NStefan Raspl <raspl@linux.ibm.com>
      Tested-and-reported-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Message-Id: <20201208210829.101324-1-raspl@linux.ibm.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      111d0bda
    • M
      KVM: mmu: Fix SPTE encoding of MMIO generation upper half · 34c0f6f2
      Maciej S. Szmigiero 提交于
      Commit cae7ed3c ("KVM: x86: Refactor the MMIO SPTE generation handling")
      cleaned up the computation of MMIO generation SPTE masks, however it
      introduced a bug how the upper part was encoded:
      SPTE bits 52-61 were supposed to contain bits 10-19 of the current
      generation number, however a missing shift encoded bits 1-10 there instead
      (mostly duplicating the lower part of the encoded generation number that
      then consisted of bits 1-9).
      
      In the meantime, the upper part was shrunk by one bit and moved by
      subsequent commits to become an upper half of the encoded generation number
      (bits 9-17 of bits 0-17 encoded in a SPTE).
      
      In addition to the above, commit 56871d44 ("KVM: x86: fix overlap between SPTE_MMIO_MASK and generation")
      has changed the SPTE bit range assigned to encode the generation number and
      the total number of bits encoded but did not update them in the comment
      attached to their defines, nor in the KVM MMU doc.
      Let's do it here, too, since it is too trivial thing to warrant a separate
      commit.
      
      Fixes: cae7ed3c ("KVM: x86: Refactor the MMIO SPTE generation handling")
      Signed-off-by: NMaciej S. Szmigiero <maciej.szmigiero@oracle.com>
      Message-Id: <156700708db2a5296c5ed7a8b9ac71f1e9765c85.1607129096.git.maciej.szmigiero@oracle.com>
      Cc: stable@vger.kernel.org
      [Reorganize macros so that everything is computed from the bit ranges. - Paolo]
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      34c0f6f2
    • L
      Merge tag 'mtd/fixes-for-5.10-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 7f376f19
      Linus Torvalds 提交于
      Pull mtd fixes from Miquel Raynal:
       "Second series of fixes for raw NAND drivers initiated because of a
        rework of the ECC engine subsystem.
      
        The location of the DT parsing logic got moved, breaking several
        drivers which in fact were not doing the ECC engine initialization at
        the right place.
      
        These drivers have been fixed by enforcing a particular ECC engine
        type and algorithm, software Hamming, while the algorithm may be
        overwritten by a DT property. This merge request fixes this in the
        xway, socrates, plat_nand, pasemi, orion, mpc5121, gpio, au1550 and
        ams-delta controller drivers"
      
      * tag 'mtd/fixes-for-5.10-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
        mtd: rawnand: xway: Do not force a particular software ECC engine
        mtd: rawnand: socrates: Do not force a particular software ECC engine
        mtd: rawnand: plat_nand: Do not force a particular software ECC engine
        mtd: rawnand: pasemi: Do not force a particular software ECC engine
        mtd: rawnand: orion: Do not force a particular software ECC engine
        mtd: rawnand: mpc5121: Do not force a particular software ECC engine
        mtd: rawnand: gpio: Do not force a particular software ECC engine
        mtd: rawnand: au1550: Do not force a particular software ECC engine
        mtd: rawnand: ams-delta: Do not force a particular software ECC engine
      7f376f19
    • L
      Merge tag 'mmc-v5.10-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 1de5d12b
      Linus Torvalds 提交于
      Pull MMC fixes from Ulf Hansson:
       "A couple of MMC fixes:
      
        MMC core:
         - Fixup condition for CMD13 polling for RPMB requests
      
        MMC host:
         - mtk-sd: Fix system suspend/resume support for CQHCI
         - mtd-sd: Extend SDIO IRQ fix to more variants
         - sdhci-of-arasan: Fix clock registration error for Keem Bay SOC
         - tmio: Bring HW to a sane state after a power off"
      
      * tag 'mmc-v5.10-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: mediatek: mark PM functions as __maybe_unused
        mmc: block: Fixup condition for CMD13 polling for RPMB requests
        mmc: tmio: improve bringing HW to a sane state with MMC_POWER_OFF
        mmc: sdhci-of-arasan: Fix clock registration error for Keem Bay SOC
        mmc: mediatek: Extend recheck_sdio_irq fix to more variants
        mmc: mediatek: Fix system suspend/resume support for CQHCI
      1de5d12b
    • W
      Merge tag 'at24-fixes-for-v5.10' of... · e977aaf8
      Wolfram Sang 提交于
      Merge tag 'at24-fixes-for-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-current
      
      at24 fixes for v5.10
      
      - fix NVMEM name with custom AT24 device name
      e977aaf8
    • L
      Merge tag 'zonefs-5.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs · 782598ec
      Linus Torvalds 提交于
      Pull zonefs fix from Damien Le Moal:
       "A single patch in this pull request to fix a BIO and page reference
        leak when writing sequential zone files"
      
      * tag 'zonefs-5.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs:
        zonefs: fix page reference and BIO leak
      782598ec
    • A
      bpf: Fix enum names for bpf_this_cpu_ptr() and bpf_per_cpu_ptr() helpers · b7906b70
      Andrii Nakryiko 提交于
      Remove bpf_ prefix, which causes these helpers to be reported in verifier
      dump as bpf_bpf_this_cpu_ptr() and bpf_bpf_per_cpu_ptr(), respectively. Lets
      fix it as long as it is still possible before UAPI freezes on these helpers.
      
      Fixes: eaa6bcb7 ("bpf: Introduce bpf_per_cpu_ptr()")
      Signed-off-by: NAndrii Nakryiko <andrii@kernel.org>
      Signed-off-by: NAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b7906b70
    • L
      Merge branch 'akpm' (patches from Andrew) · a06caa4a
      Linus Torvalds 提交于
      Merge misc fixes from Andrew Morton:
       "8 patches.
      
        Subsystems affected by this patch series: proc, selftests, kbuild, and
        mm (pagecache, kasan, hugetlb)"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm/hugetlb: clear compound_nr before freeing gigantic pages
        kasan: fix object remaining in offline per-cpu quarantine
        elfcore: fix building with clang
        initramfs: fix clang build failure
        kbuild: avoid static_assert for genksyms
        selftest/fpu: avoid clang warning
        proc: use untagged_addr() for pagemap_read addresses
        revert "mm/filemap: add static for function __add_to_page_cache_locked"
      a06caa4a
    • G
      mm/hugetlb: clear compound_nr before freeing gigantic pages · ba9c1201
      Gerald Schaefer 提交于
      Commit 1378a5ee ("mm: store compound_nr as well as compound_order")
      added compound_nr counter to first tail struct page, overlaying with
      page->mapping.  The overlay itself is fine, but while freeing gigantic
      hugepages via free_contig_range(), a "bad page" check will trigger for
      non-NULL page->mapping on the first tail page:
      
        BUG: Bad page state in process bash  pfn:380001
        page:00000000c35f0856 refcount:0 mapcount:0 mapping:00000000126b68aa index:0x0 pfn:0x380001
        aops:0x0
        flags: 0x3ffff00000000000()
        raw: 3ffff00000000000 0000000000000100 0000000000000122 0000000100000000
        raw: 0000000000000000 0000000000000000 ffffffff00000000 0000000000000000
        page dumped because: non-NULL mapping
        Modules linked in:
        CPU: 6 PID: 616 Comm: bash Not tainted 5.10.0-rc7-next-20201208 #1
        Hardware name: IBM 3906 M03 703 (LPAR)
        Call Trace:
          show_stack+0x6e/0xe8
          dump_stack+0x90/0xc8
          bad_page+0xd6/0x130
          free_pcppages_bulk+0x26a/0x800
          free_unref_page+0x6e/0x90
          free_contig_range+0x94/0xe8
          update_and_free_page+0x1c4/0x2c8
          free_pool_huge_page+0x11e/0x138
          set_max_huge_pages+0x228/0x300
          nr_hugepages_store_common+0xb8/0x130
          kernfs_fop_write+0xd2/0x218
          vfs_write+0xb0/0x2b8
          ksys_write+0xac/0xe0
          system_call+0xe6/0x288
        Disabling lock debugging due to kernel taint
      
      This is because only the compound_order is cleared in
      destroy_compound_gigantic_page(), and compound_nr is set to
      1U << order == 1 for order 0 in set_compound_order(page, 0).
      
      Fix this by explicitly clearing compound_nr for first tail page after
      calling set_compound_order(page, 0).
      
      Link: https://lkml.kernel.org/r/20201208182813.66391-2-gerald.schaefer@linux.ibm.com
      Fixes: 1378a5ee ("mm: store compound_nr as well as compound_order")
      Signed-off-by: NGerald Schaefer <gerald.schaefer@linux.ibm.com>
      Reviewed-by: NMatthew Wilcox (Oracle) <willy@infradead.org>
      Cc: Heiko Carstens <hca@linux.ibm.com>
      Cc: Mike Kravetz <mike.kravetz@oracle.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: <stable@vger.kernel.org>	[5.9+]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ba9c1201
    • K
      kasan: fix object remaining in offline per-cpu quarantine · 6c82d45c
      Kuan-Ying Lee 提交于
      We hit this issue in our internal test.  When enabling generic kasan, a
      kfree()'d object is put into per-cpu quarantine first.  If the cpu goes
      offline, object still remains in the per-cpu quarantine.  If we call
      kmem_cache_destroy() now, slub will report "Objects remaining" error.
      
        =============================================================================
        BUG test_module_slab (Not tainted): Objects remaining in test_module_slab on __kmem_cache_shutdown()
        -----------------------------------------------------------------------------
      
        Disabling lock debugging due to kernel taint
        INFO: Slab 0x(____ptrval____) objects=34 used=1 fp=0x(____ptrval____) flags=0x2ffff00000010200
        CPU: 3 PID: 176 Comm: cat Tainted: G    B             5.10.0-rc1-00007-g4525c878-dirty #10
        Hardware name: linux,dummy-virt (DT)
        Call trace:
           dump_backtrace+0x0/0x2b0
           show_stack+0x18/0x68
           dump_stack+0xfc/0x168
           slab_err+0xac/0xd4
           __kmem_cache_shutdown+0x1e4/0x3c8
           kmem_cache_destroy+0x68/0x130
           test_version_show+0x84/0xf0
           module_attr_show+0x40/0x60
           sysfs_kf_seq_show+0x128/0x1c0
           kernfs_seq_show+0xa0/0xb8
           seq_read+0x1f0/0x7e8
           kernfs_fop_read+0x70/0x338
           vfs_read+0xe4/0x250
           ksys_read+0xc8/0x180
           __arm64_sys_read+0x44/0x58
           el0_svc_common.constprop.0+0xac/0x228
           do_el0_svc+0x38/0xa0
           el0_sync_handler+0x170/0x178
           el0_sync+0x174/0x180
        INFO: Object 0x(____ptrval____) @offset=15848
        INFO: Allocated in test_version_show+0x98/0xf0 age=8188 cpu=6 pid=172
           stack_trace_save+0x9c/0xd0
           set_track+0x64/0xf0
           alloc_debug_processing+0x104/0x1a0
           ___slab_alloc+0x628/0x648
           __slab_alloc.isra.0+0x2c/0x58
           kmem_cache_alloc+0x560/0x588
           test_version_show+0x98/0xf0
           module_attr_show+0x40/0x60
           sysfs_kf_seq_show+0x128/0x1c0
           kernfs_seq_show+0xa0/0xb8
           seq_read+0x1f0/0x7e8
           kernfs_fop_read+0x70/0x338
           vfs_read+0xe4/0x250
           ksys_read+0xc8/0x180
           __arm64_sys_read+0x44/0x58
           el0_svc_common.constprop.0+0xac/0x228
        kmem_cache_destroy test_module_slab: Slab cache still has objects
      
      Register a cpu hotplug function to remove all objects in the offline
      per-cpu quarantine when cpu is going offline.  Set a per-cpu variable to
      indicate this cpu is offline.
      
      [qiang.zhang@windriver.com: fix slab double free when cpu-hotplug]
        Link: https://lkml.kernel.org/r/20201204102206.20237-1-qiang.zhang@windriver.com
      
      Link: https://lkml.kernel.org/r/1606895585-17382-2-git-send-email-Kuan-Ying.Lee@mediatek.comSigned-off-by: NKuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
      Signed-off-by: NZqiang <qiang.zhang@windriver.com>
      Suggested-by: NDmitry Vyukov <dvyukov@google.com>
      Reported-by: NGuangye Yang <guangye.yang@mediatek.com>
      Reviewed-by: NDmitry Vyukov <dvyukov@google.com>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Matthias Brugger <matthias.bgg@gmail.com>
      Cc: Nicholas Tang <nicholas.tang@mediatek.com>
      Cc: Miles Chen <miles.chen@mediatek.com>
      Cc: Qian Cai <qcai@redhat.com>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6c82d45c