1. 07 Dec, 2023 3 commits
    • Vlastimil Babka's avatar
      mm/slub: handle bulk and single object freeing separately · 284f17ac
      Vlastimil Babka authored
      Currently we have a single function slab_free() handling both single
      object freeing and bulk freeing with necessary hooks, the latter case
      requiring slab_free_freelist_hook(). It should be however better to
      distinguish the two use cases for the following reasons:
      
      - code simpler to follow for the single object case
      
      - better code generation - although inlining should eliminate the
        slab_free_freelist_hook() for single object freeing in case no
        debugging options are enabled, it seems it's not perfect. When e.g.
        KASAN is enabled, we're imposing additional unnecessary overhead for
        single object freeing.
      
      - preparation to add percpu array caches in near future
      
      Therefore, simplify slab_free() for the single object case by dropping
      unnecessary parameters and calling only slab_free_hook() instead of
      slab_free_freelist_hook(). Rename the bulk variant to slab_free_bulk()
      and adjust callers accordingly.
      
      While at it, flip (and document) slab_free_hook() return value so that
      it returns true when the freeing can proceed, which matches the logic of
      slab_free_freelist_hook() and is not confusingly the opposite.
      
      Additionally we can simplify a bit by changing the tail parameter of
      do_slab_free() when freeing a single object - instead of NULL we can set
      it equal to head.
      
      bloat-o-meter shows small code reduction with a .config that has KASAN
      etc disabled:
      
      add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-118 (-118)
      Function                                     old     new   delta
      kmem_cache_alloc_bulk                       1203    1196      -7
      kmem_cache_free                              861     835     -26
      __kmem_cache_free                            741     704     -37
      kmem_cache_free_bulk                         911     863     -48
      Reviewed-by: default avatarChengming Zhou <zhouchengming@bytedance.com>
      Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      284f17ac
    • Vlastimil Babka's avatar
      mm/slub: introduce __kmem_cache_free_bulk() without free hooks · 520a688a
      Vlastimil Babka authored
      Currently, when __kmem_cache_alloc_bulk() fails, it frees back the
      objects that were allocated before the failure, using
      kmem_cache_free_bulk(). Because kmem_cache_free_bulk() calls the free
      hooks (KASAN etc.) and those expect objects that were processed by the
      post alloc hooks, slab_post_alloc_hook() is called before
      kmem_cache_free_bulk().
      
      This is wasteful, although not a big concern in practice for the rare
      error path. But in order to efficiently handle percpu array batch refill
      and free in the near future, we will also need a variant of
      kmem_cache_free_bulk() that avoids the free hooks. So introduce it now
      and use it for the failure path.
      
      In case of failure we however still need to perform memcg uncharge so
      handle that in a new memcg_slab_alloc_error_hook(). Thanks to Chengming
      Zhou for noticing the missing uncharge.
      
      As a consequence, __kmem_cache_alloc_bulk() no longer needs the objcg
      parameter, remove it.
      Reviewed-by: default avatarChengming Zhou <zhouchengming@bytedance.com>
      Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      520a688a
    • Vlastimil Babka's avatar
      mm/slub: fix bulk alloc and free stats · 6f3dd2c3
      Vlastimil Babka authored
      The SLUB sysfs stats enabled CONFIG_SLUB_STATS have two deficiencies
      identified wrt bulk alloc/free operations:
      
      - Bulk allocations from cpu freelist are not counted. Add the
        ALLOC_FASTPATH counter there.
      
      - Bulk fastpath freeing will count a list of multiple objects with a
        single FREE_FASTPATH inc. Add a stat_add() variant to count them all.
      Reviewed-by: default avatarChengming Zhou <zhouchengming@bytedance.com>
      Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      6f3dd2c3
  2. 06 Dec, 2023 13 commits
  3. 05 Dec, 2023 8 commits
  4. 13 Nov, 2023 1 commit
  5. 12 Nov, 2023 5 commits
  6. 11 Nov, 2023 1 commit
    • Linus Torvalds's avatar
      Merge tag 'probes-fixes-v6.7-rc1' of... · 3ca112b7
      Linus Torvalds authored
      Merge tag 'probes-fixes-v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull probes fixes from Masami Hiramatsu:
      
       - Documentation update: Add a note about argument and return value
         fetching is the best effort because it depends on the type.
      
       - objpool: Fix to make internal global variables static in
         test_objpool.c.
      
       - kprobes: Unify kprobes_exceptions_nofify() prototypes. There are the
         same prototypes in asm/kprobes.h for some architectures, but some of
         them are missing the prototype and it causes a warning. So move the
         prototype into linux/kprobes.h.
      
       - tracing: Fix to check the tracepoint event and return event at
         parsing stage. The tracepoint event doesn't support %return but if
         $retval exists, it will be converted to %return silently. This finds
         that case and rejects it.
      
       - tracing: Fix the order of the descriptions about the parameters of
         __kprobe_event_gen_cmd_start() to be consistent with the argument
         list of the function.
      
      * tag 'probes-fixes-v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing/kprobes: Fix the order of argument descriptions
        tracing: fprobe-event: Fix to check tracepoint event and return
        kprobes: unify kprobes_exceptions_nofify() prototypes
        lib: test_objpool: make global variables static
        Documentation: tracing: Add a note about argument and retval access
      3ca112b7
  7. 10 Nov, 2023 9 commits
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · 18553507
      Linus Torvalds authored
      Pull fbdev fixes and cleanups from Helge Deller:
      
       - fix double free and resource leaks in imsttfb
      
       - lots of remove callback cleanups and section mismatch fixes in
         omapfb, amifb and atmel_lcdfb
      
       - error code fix and memparse simplification in omapfb
      
      * tag 'fbdev-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev: (31 commits)
        fbdev: fsl-diu-fb: mark wr_reg_wa() static
        fbdev: amifb: Convert to platform remove callback returning void
        fbdev: amifb: Mark driver struct with __refdata to prevent section mismatch warning
        fbdev: hyperv_fb: fix uninitialized local variable use
        fbdev: omapfb/tpd12s015: Convert to platform remove callback returning void
        fbdev: omapfb/tfp410: Convert to platform remove callback returning void
        fbdev: omapfb/sharp-ls037v7dw01: Convert to platform remove callback returning void
        fbdev: omapfb/opa362: Convert to platform remove callback returning void
        fbdev: omapfb/hdmi: Convert to platform remove callback returning void
        fbdev: omapfb/dvi: Convert to platform remove callback returning void
        fbdev: omapfb/dsi-cm: Convert to platform remove callback returning void
        fbdev: omapfb/dpi: Convert to platform remove callback returning void
        fbdev: omapfb/analog-tv: Convert to platform remove callback returning void
        fbdev: atmel_lcdfb: Convert to platform remove callback returning void
        fbdev: omapfb/tpd12s015: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/tfp410: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/sharp-ls037v7dw01: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/opa362: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/hdmi: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/dvi: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        ...
      18553507
    • Yujie Liu's avatar
      tracing/kprobes: Fix the order of argument descriptions · f032c53b
      Yujie Liu authored
      The order of descriptions should be consistent with the argument list of
      the function, so "kretprobe" should be the second one.
      
      int __kprobe_event_gen_cmd_start(struct dynevent_cmd *cmd, bool kretprobe,
                                       const char *name, const char *loc, ...)
      
      Link: https://lore.kernel.org/all/20231031041305.3363712-1-yujie.liu@intel.com/
      
      Fixes: 2a588dd1 ("tracing: Add kprobe event command generation functions")
      Suggested-by: default avatarMukesh Ojha <quic_mojha@quicinc.com>
      Signed-off-by: default avatarYujie Liu <yujie.liu@intel.com>
      Reviewed-by: default avatarMukesh Ojha <quic_mojha@quicinc.com>
      Signed-off-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
      f032c53b
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2023-11-10' of git://anongit.freedesktop.org/drm/drm · c0d12d76
      Linus Torvalds authored
      Pull drm fixes from Daniel Vetter:
       "Dave's VPN to the big machine died, so it's on me to do fixes pr this
        and next week while everyone else is at plumbers.
      
         - big pile of amd fixes, but mostly for hw support newly added in 6.7
      
         - i915 fixes, mostly minor things
      
         - qxl memory leak fix
      
         - vc4 uaf fix in mock helpers
      
         - syncobj fix for DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE"
      
      * tag 'drm-next-2023-11-10' of git://anongit.freedesktop.org/drm/drm: (78 commits)
        drm/amdgpu: fix error handling in amdgpu_vm_init
        drm/amdgpu: Fix possible null pointer dereference
        drm/amdgpu: move UVD and VCE sched entity init after sched init
        drm/amdgpu: move kfd_resume before the ip late init
        drm/amd: Explicitly check for GFXOFF to be enabled for s0ix
        drm/amdgpu: Change WREG32_RLC to WREG32_SOC15_RLC where inst != 0 (v2)
        drm/amdgpu: Use correct KIQ MEC engine for gfx9.4.3 (v5)
        drm/amdgpu: add smu v13.0.6 pcs xgmi ras error query support
        drm/amdgpu: fix software pci_unplug on some chips
        drm/amd/display: remove duplicated argument
        drm/amdgpu: correct mca debugfs dump reg list
        drm/amdgpu: correct acclerator check architecutre dump
        drm/amdgpu: add pcs xgmi v6.4.0 ras support
        drm/amdgpu: Change extended-scope MTYPE on GC 9.4.3
        drm/amdgpu: disable smu v13.0.6 mca debug mode by default
        drm/amdgpu: Support multiple error query modes
        drm/amdgpu: refine smu v13.0.6 mca dump driver
        drm/amdgpu: Do not program PF-only regs in hdp_v4_0.c under SRIOV (v2)
        drm/amdgpu: Skip PCTL0_MMHUB_DEEPSLEEP_IB write in jpegv4.0.3 under SRIOV
        drm: amd: Resolve Sphinx unexpected indentation warning
        ...
      c0d12d76
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · ac347a06
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
       "Mostly PMU fixes and a reworking of the pseudo-NMI disabling on broken
        MediaTek firmware:
      
         - Move the MediaTek GIC quirk handling from irqchip to core. Before
           the merging window commit 44bd78dd ("irqchip/gic-v3: Disable
           pseudo NMIs on MediaTek devices w/ firmware issues") temporarily
           addressed this issue. Fixed now at a deeper level in the arch code
      
         - Reject events meant for other PMUs in the CoreSight PMU driver,
           otherwise some of the core PMU events would disappear
      
         - Fix the Armv8 PMUv3 driver driver to not truncate 64-bit registers,
           causing some events to be invisible
      
         - Remove duplicate declaration of __arm64_sys##name following the
           patch to avoid prototype warning for syscalls
      
         - Typos in the elf_hwcap documentation"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64/syscall: Remove duplicate declaration
        Revert "arm64: smp: avoid NMI IPIs with broken MediaTek FW"
        arm64: Move MediaTek GIC quirk handling from irqchip to core
        arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers
        perf: arm_cspmu: Reject events meant for other PMUs
        Documentation/arm64: Fix typos in elf_hwcaps
      ac347a06
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · e1d809b3
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of fixes for rc1.
      
        The majority of changes are various ASoC driver-specific small fixes
        and usual HD-audio quirks, while there are a couple of core changes: a
        fix in ALSA core procfs code to avoid deadlocks at disconnection and
        an ASoC core fix for DAPM clock widgets"
      
      * tag 'sound-fix-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        OSS: dmasound/paula: Convert to platform remove callback returning void
        ALSA: hda: ASUS UM5302LA: Added quirks for cs35L41/10431A83 on i2c bus
        ALSA: info: Fix potential deadlock at disconnection
        ASoC: nau8540: Add self recovery to improve capture quility
        ALSA: hda/realtek: Add support dual speaker for Dell
        ALSA: hda: Add ASRock X670E Taichi to denylist
        ALSA: hda/realtek: Add quirk for ASUS UX7602ZM
        ASoC: SOF: sof-client: trivial: fix comment typo
        ASoC: dapm: fix clock get name
        ASoC: hdmi-codec: register hpd callback on component probe
        ASoC: mediatek: mt8186_mt6366_rt1019_rt5682s: trivial: fix error messages
        ASoC: da7219: Improve system suspend and resume handling
        ASoC: codecs: Modify macro value error
        ASoC: codecs: Modify the wrong judgment of re value
        ASoC: codecs: Modify the maximum value of calib
        ASoC: amd: acp: fix for i2s mode register field update
        ASoC: codecs: aw88399: Fix -Wuninitialized in aw_dev_set_vcalb()
        ASoC: rt712-sdca: fix speaker route missing issue
        ASoC: rockchip: Fix unused rockchip_i2s_tdm_match warning for !CONFIG_OF
        ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings
      e1d809b3
    • Daniel Vetter's avatar
      Merge tag 'amd-drm-next-6.7-2023-11-10' of https://gitlab.freedesktop.org/agd5f/linux into drm-next · 03df0fc0
      Daniel Vetter authored
      amd-drm-next-6.7-2023-11-10:
      
      amdgpu:
      - SR-IOV fixes
      - DMCUB fixes
      - DCN3.5 fixes
      - DP2 fixes
      - SubVP fixes
      - SMU14 fixes
      - SDMA4.x fixes
      - Suspend/resume fixes
      - AGP regression fix
      - UAF fixes for some error cases
      - SMU 13.0.6 fixes
      - Documentation fixes
      - RAS fixes
      - Hotplug fixes
      - Scheduling entity ordering fix
      - GPUVM fixes
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231110190703.4741-1-alexander.deucher@amd.com
      03df0fc0
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.7-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · ae4f52a7
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A couple of fixes that came in during the merge window: one Kconfig
        dependency fix and another fix for a long standing issue where a sync
        transfer races with system suspend"
      
      * tag 'spi-fix-v6.7-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: Fix null dereference on suspend
        spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies
      ae4f52a7
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · b456259e
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "MMC core:
         - Fix broken cache-flush support for Micron eMMCs
         - Revert 'mmc: core: Capture correct oemid-bits for eMMC cards'
      
        MMC host:
         - sdhci_am654: Fix TAP value parsing for legacy speed mode
         - sdhci-pci-gli: Fix support for ASPM mode for GL9755/GL9750
         - vub300: Fix an error path in probe"
      
      * tag 'mmc-v6.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdhci-pci-gli: GL9750: Mask the replay timer timeout of AER
        mmc: sdhci-pci-gli: GL9755: Mask the replay timer timeout of AER
        Revert "mmc: core: Capture correct oemid-bits for eMMC cards"
        mmc: vub300: fix an error code
        mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC Q2J54A
        mmc: sdhci_am654: fix start loop index for TAP value parsing
      b456259e
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-6.7-rc1-fixes' of... · b077b7ee
      Linus Torvalds authored
      Merge tag 'pwm/for-6.7-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm fixes from Thierry Reding:
       "This contains two very small fixes that I failed to include in the
        main pull request"
      
      * tag 'pwm/for-6.7-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: Fix double shift bug
        pwm: samsung: Fix a bit test in pwm_samsung_resume()
      b077b7ee