1. 15 Nov, 2022 1 commit
    • Zhen Lei's avatar
      kallsyms: Add self-test facility · 30f3bb09
      Zhen Lei authored
      Added test cases for basic functions and performance of functions
      kallsyms_lookup_name(), kallsyms_on_each_symbol() and
      kallsyms_on_each_match_symbol(). It also calculates the compression rate
      of the kallsyms compression algorithm for the current symbol set.
      
      The basic functions test begins by testing a set of symbols whose address
      values are known. Then, traverse all symbol addresses and find the
      corresponding symbol name based on the address. It's impossible to
      determine whether these addresses are correct, but we can use the above
      three functions along with the addresses to test each other. Due to the
      traversal operation of kallsyms_on_each_symbol() is too slow, only 60
      symbols can be tested in one second, so let it test on average once
      every 128 symbols. The other two functions validate all symbols.
      
      If the basic functions test is passed, print only performance test
      results. If the test fails, print error information, but do not perform
      subsequent performance tests.
      
      Start self-test automatically after system startup if
      CONFIG_KALLSYMS_SELFTEST=y.
      
      Example of output content: (prefix 'kallsyms_selftest:' is omitted
       start
        ---------------------------------------------------------
       | nr_symbols | compressed size | original size | ratio(%) |
       |---------------------------------------------------------|
       |     107543 |       1357912   |      2407433  |  56.40   |
        ---------------------------------------------------------
       kallsyms_lookup_name() looked up 107543 symbols
       The time spent on each symbol is (ns): min=630, max=35295, avg=7353
       kallsyms_on_each_symbol() traverse all: 11782628 ns
       kallsyms_on_each_match_symbol() traverse all: 9261 ns
       finish
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      30f3bb09
  2. 13 Nov, 2022 6 commits
    • Zhen Lei's avatar
      livepatch: Use kallsyms_on_each_match_symbol() to improve performance · 9cb37357
      Zhen Lei authored
      Based on the test results of kallsyms_on_each_match_symbol() and
      kallsyms_on_each_symbol(), the average performance can be improved by
      more than 1500 times.
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      9cb37357
    • Zhen Lei's avatar
      kallsyms: Add helper kallsyms_on_each_match_symbol() · 4dc533e0
      Zhen Lei authored
      Function kallsyms_on_each_symbol() traverses all symbols and submits each
      symbol to the hook 'fn' for judgment and processing. For some cases, the
      hook actually only handles the matched symbol, such as livepatch.
      
      Because all symbols are currently sorted by name, all the symbols with the
      same name are clustered together. Function kallsyms_lookup_names() gets
      the start and end positions of the set corresponding to the specified
      name. So we can easily and quickly traverse all the matches.
      
      The test results are as follows (twice): (x86)
      kallsyms_on_each_match_symbol:     7454,     7984
      kallsyms_on_each_symbol      : 11733809, 11785803
      
      kallsyms_on_each_match_symbol() consumes only 0.066% of
      kallsyms_on_each_symbol()'s time. In other words, 1523x better
      performance.
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      4dc533e0
    • Zhen Lei's avatar
      kallsyms: Reduce the memory occupied by kallsyms_seqs_of_names[] · 19bd8981
      Zhen Lei authored
      kallsyms_seqs_of_names[] records the symbol index sorted by address, the
      maximum value in kallsyms_seqs_of_names[] is the number of symbols. And
      2^24 = 16777216, which means that three bytes are enough to store the
      index. This can help us save (1 * kallsyms_num_syms) bytes of memory.
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      19bd8981
    • Zhen Lei's avatar
      kallsyms: Correctly sequence symbols when CONFIG_LTO_CLANG=y · 010a0aad
      Zhen Lei authored
      LLVM appends various suffixes for local functions and variables, suffixes
      observed:
       - foo.llvm.[0-9a-f]+
       - foo.[0-9a-f]+
      
      Therefore, when CONFIG_LTO_CLANG=y, kallsyms_lookup_name() needs to
      truncate the suffix of the symbol name before comparing the local function
      or variable name.
      
      Old implementation code:
      -	if (strcmp(namebuf, name) == 0)
      -		return kallsyms_sym_address(i);
      -	if (cleanup_symbol_name(namebuf) && strcmp(namebuf, name) == 0)
      -		return kallsyms_sym_address(i);
      
      The preceding process is traversed by address from low to high. That is,
      for those with the same name after the suffix is removed, the one with
      the smallest address is returned first. Therefore, when sorting in the
      tool, if the raw names are the same, they should be sorted by address in
      ascending order.
      
      ASCII[.]   = 2e
      ASCII[0-9] = 30,39
      ASCII[A-Z] = 41,5a
      ASCII[_]   = 5f
      ASCII[a-z] = 61,7a
      
      According to the preceding ASCII code values, the following sorting result
      is strictly followed.
       ---------------------------------
      |    main-key     |    sub-key    |
      |---------------------------------|
      |                 |  addr_lowest  |
      | <name>          |      ...      |
      | <name>.<suffix> |      ...      |
      |                 |  addr_highest |
      |---------------------------------|
      | <name>?<others> |               |   //? is [_A-Za-z0-9]
       ---------------------------------
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      010a0aad
    • Zhen Lei's avatar
      kallsyms: Improve the performance of kallsyms_lookup_name() · 60443c88
      Zhen Lei authored
      Currently, to search for a symbol, we need to expand the symbols in
      'kallsyms_names' one by one, and then use the expanded string for
      comparison. It's O(n).
      
      If we sort names in ascending order like addresses, we can also use
      binary search. It's O(log(n)).
      
      In order not to change the implementation of "/proc/kallsyms", the table
      kallsyms_names[] is still stored in a one-to-one correspondence with the
      address in ascending order.
      
      Add array kallsyms_seqs_of_names[], it's indexed by the sequence number
      of the sorted names, and the corresponding content is the sequence number
      of the sorted addresses. For example:
      Assume that the index of NameX in array kallsyms_seqs_of_names[] is 'i',
      the content of kallsyms_seqs_of_names[i] is 'k', then the corresponding
      address of NameX is kallsyms_addresses[k]. The offset in kallsyms_names[]
      is get_symbol_offset(k).
      
      Note that the memory usage will increase by (4 * kallsyms_num_syms)
      bytes, the next two patches will reduce (1 * kallsyms_num_syms) bytes
      and properly handle the case CONFIG_LTO_CLANG=y.
      
      Performance test results: (x86)
      Before:
      min=234, max=10364402, avg=5206926
      min=267, max=11168517, avg=5207587
      After:
      min=1016, max=90894, avg=7272
      min=1014, max=93470, avg=7293
      
      The average lookup performance of kallsyms_lookup_name() improved 715x.
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      60443c88
    • Zhen Lei's avatar
      scripts/kallsyms: rename build_initial_tok_table() · fcdf7197
      Zhen Lei authored
      Except for the function build_initial_tok_table(), no token abbreviation
      is used elsewhere.
      
      $ cat scripts/kallsyms.c | grep tok | wc -l
      33
      $ cat scripts/kallsyms.c | grep token | wc -l
      31
      
      Here, it would be clearer to use the full name.
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Reviewed-by: default avatarPetr Mladek <pmladek@suse.com>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      fcdf7197
  3. 11 Nov, 2022 20 commits
    • Miaoqian Lin's avatar
      module: Fix NULL vs IS_ERR checking for module_get_next_page · 45af1d7a
      Miaoqian Lin authored
      The module_get_next_page() function return error pointers on error
      instead of NULL.
      Use IS_ERR() to check the return value to fix this.
      
      Fixes: b1ae6dc4 ("module: add in-kernel support for decompressing")
      Signed-off-by: default avatarMiaoqian Lin <linmq006@gmail.com>
      Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      45af1d7a
    • Rasmus Villemoes's avatar
      kernel/params.c: defer most of param_sysfs_init() to late_initcall time · 96a1a241
      Rasmus Villemoes authored
      param_sysfs_init(), and in particular param_sysfs_builtin() is rather
      time-consuming; for my board, it currently takes about 30ms.
      
      That amounts to about 3% of the time budget I have from U-Boot hands
      over control to linux and linux must assume responsibility for keeping
      the external watchdog happy.
      
      We must still continue to initialize module_kset at subsys_initcall
      time, since otherwise any request_module() would fail in
      mod_sysfs_init(). However, the bulk of the work in
      param_sysfs_builtin(), namely populating /sys/module/*/version and/or
      /sys/module/*/parameters/ for builtin modules, can be deferred to
      late_initcall time - there's no userspace yet anyway to observe
      contents of /sys or the lack thereof.
      Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      96a1a241
    • Chen Zhongjin's avatar
      module: Remove unused macros module_addr_min/max · 89a6b591
      Chen Zhongjin authored
      Unused macros reported by [-Wunused-macros].
      
      These macros are introduced to record the bound address of modules.
      
      Commit 80b8bf43 ("module: Always have struct mod_tree_root") made
      "struct mod_tree_root" always present and its members addr_min and
      addr_max can be directly accessed.
      
      Macros module_addr_min and module_addr_min are not used anymore, so remove
      them.
      Signed-off-by: default avatarChen Zhongjin <chenzhongjin@huawei.com>
      Reviewed-by: default avatarMiroslav Benes <mbenes@suse.cz>
      Reviewed-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      [mcgrof: massaged the commit messsage as suggested by Miroslav]
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      89a6b591
    • Rasmus Villemoes's avatar
      module: remove redundant module_sysfs_initialized variable · 3cd60866
      Rasmus Villemoes authored
      The variable module_sysfs_initialized is used for checking whether
      module_kset has been initialized. Checking module_kset itself works
      just fine for that.
      
      This is a leftover from commit 7405c1e1 ("kset: convert /sys/module
      to use kset_create").
      Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Reviewed-by: default avatarMiroslav Benes <mbenes@suse.cz>
      [mcgrof: adjusted commit log as suggested by Christophe Leroy]
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      3cd60866
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.1-2-2022-11-10' of... · eb037f16
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.1-2-2022-11-10' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix 'perf stat' crash with --per-node --metric-only in CSV mode, due
         to the AGGR_NODE slot in the 'aggr_header_csv' array not being set.
      
       - Fix printing prefix in CSV output of 'perf stat' metrics in interval
         mode (-I), where an extra separator was being added to the start of
         some lines.
      
       - Fix skipping branch stack sampling 'perf test' entry, that was using
         both --branch-any and --branch-filter, which can't be used together.
      
      * tag 'perf-tools-fixes-for-v6.1-2-2022-11-10' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf tools: Add the include/perf/ directory to .gitignore
        perf test: Fix skipping branch stack sampling test
        perf stat: Fix printing os->prefix in CSV metrics output
        perf stat: Fix crash with --per-node --metric-only in CSV mode
      eb037f16
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 991f173c
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - A fix to add the missing PWM LEDs into the SiFive HiFive Unleashed
         device tree.
      
       - A fix to fully clear a task's registers on creation, as they end up
         in userspace and thus leak kernel memory.
      
       - A pair of VDSO-related build fixes that manifest on recent LLVM-based
         toolchains.
      
       - A fix to our early init to ensure the DT is adequately processed
         before reserved memory nodes are processed.
      
      * tag 'riscv-for-linus-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        RISC-V: vdso: Do not add missing symbols to version section in linker script
        riscv: fix reserved memory setup
        riscv: vdso: fix build with llvm
        riscv: process: fix kernel info leakage
        riscv: dts: sifive unleashed: Add PWM controlled LEDs
      991f173c
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 74bd160f
      Linus Torvalds authored
      Pull kvm
       "This is a pretty large diffstat for this time of the release. The main
        culprit is a reorganization of the AMD assembly trampoline, allowing
        percpu variables to be accessed early.
      
        This is needed for the return stack depth tracking retbleed mitigation
        that will be in 6.2, but it also makes it possible to tighten the IBRS
        restore on vmexit. The latter change is a long tail of the
        spectrev2/retbleed patches (the corresponding Intel change was simpler
        and went in already last June), which is why I am including it right
        now instead of sharing a topic branch with tip.
      
        Being assembly and being rich in comments makes the line count balloon
        a bit, but I am pretty confident in the change (famous last words)
        because the reorganization actually makes everything simpler and more
        understandable than before. It has also had external review and has
        been tested on the aforementioned 6.2 changes, which explode quite
        brutally without the fix.
      
        Apart from this, things are pretty normal.
      
        s390:
      
         - PCI fix
      
         - PV clock fix
      
        x86:
      
         - Fix clash between PMU MSRs and other MSRs
      
         - Prepare SVM assembly trampoline for 6.2 retbleed mitigation and
           for...
      
         - ... tightening IBRS restore on vmexit, moving it before the first
           RET or indirect branch
      
         - Fix log level for VMSA dump
      
         - Block all page faults during kvm_zap_gfn_range()
      
        Tools:
      
         - kvm_stat: fix incorrect detection of debugfs
      
         - kvm_stat: update vmexit definitions"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86/mmu: Block all page faults during kvm_zap_gfn_range()
        KVM: x86/pmu: Limit the maximum number of supported AMD GP counters
        KVM: x86/pmu: Limit the maximum number of supported Intel GP counters
        KVM: x86/pmu: Do not speculatively query Intel GP PMCs that don't exist yet
        KVM: SVM: Only dump VMSA to klog at KERN_DEBUG level
        tools/kvm_stat: update exit reasons for vmx/svm/aarch64/userspace
        tools/kvm_stat: fix incorrect detection of debugfs
        x86, KVM: remove unnecessary argument to x86_virt_spec_ctrl and callers
        KVM: SVM: move MSR_IA32_SPEC_CTRL save/restore to assembly
        KVM: SVM: restore host save area from assembly
        KVM: SVM: move guest vmsave/vmload back to assembly
        KVM: SVM: do not allocate struct svm_cpu_data dynamically
        KVM: SVM: remove dead field from struct svm_cpu_data
        KVM: SVM: remove unused field from struct vcpu_svm
        KVM: SVM: retrieve VMCB from assembly
        KVM: SVM: adjust register allocation for __svm_vcpu_run()
        KVM: SVM: replace regs argument of __svm_vcpu_run() with vcpu_svm
        KVM: x86: use a separate asm-offsets.c file
        KVM: s390: pci: Fix allocation size of aift kzdev elements
        KVM: s390: pv: don't allow userspace to set the clock under PV
      74bd160f
    • Linus Torvalds's avatar
      Merge tag 'hyperv-fixes-signed-20221110' of... · 5be07b3f
      Linus Torvalds authored
      Merge tag 'hyperv-fixes-signed-20221110' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv fixes from Wei Liu:
      
       - Fix TSC MSR write for root partition (Anirudh Rayabharam)
      
       - Fix definition of vector in pci-hyperv driver (Dexuan Cui)
      
       - A few other misc patches
      
      * tag 'hyperv-fixes-signed-20221110' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        PCI: hv: Fix the definition of vector in hv_compose_msi_msg()
        MAINTAINERS: remove sthemmin
        x86/hyperv: fix invalid writes to MSRs during root partition kexec
        clocksource/drivers/hyperv: add data structure for reference TSC MSR
        Drivers: hv: fix repeated words in comments
        x86/hyperv: Remove BUG_ON() for kmap_local_page()
      5be07b3f
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · 91c77a6e
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
       "Misc minor driver fixes and a big pile of at_hdmac driver fixes. More
        work on this driver is done and sitting in next:
      
         - Pile of at_hdmac driver rework which fixes many long standing
           issues for this driver.
      
         - couple of stm32 driver fixes for clearing structure and race fix
      
         - idxd fixes for RO device state and batch size
      
         - ti driver mem leak fix
      
         - apple fix for grabbing channels in xlate
      
         - resource leak fix in mv xor"
      
      * tag 'dmaengine-fix-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (24 commits)
        dmaengine: at_hdmac: Check return code of dma_async_device_register
        dmaengine: at_hdmac: Fix impossible condition
        dmaengine: at_hdmac: Don't allow CPU to reorder channel enable
        dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors
        dmaengine: at_hdmac: Fix descriptor handling when issuing it to hardware
        dmaengine: at_hdmac: Fix concurrency over the active list
        dmaengine: at_hdmac: Free the memset buf without holding the chan lock
        dmaengine: at_hdmac: Fix concurrency over descriptor
        dmaengine: at_hdmac: Fix concurrency problems by removing atc_complete_all()
        dmaengine: at_hdmac: Protect atchan->status with the channel lock
        dmaengine: at_hdmac: Do not call the complete callback on device_terminate_all
        dmaengine: at_hdmac: Fix premature completion of desc in issue_pending
        dmaengine: at_hdmac: Start transfer for cyclic channels in issue_pending
        dmaengine: at_hdmac: Don't start transactions at tx_submit level
        dmaengine: at_hdmac: Fix at_lli struct definition
        dmaengine: stm32-dma: fix potential race between pause and resume
        dmaengine: ti: k3-udma-glue: fix memory leak when register device fail
        dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove()
        dmaengine: apple-admac: Fix grabbing of channels in of_xlate
        dmaengine: idxd: fix RO device state error after been disabled/reset
        ...
      91c77a6e
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · a83e18cc
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A relatively large batch of fixes here but all device specific, plus
        an update to MAINTAINERS.
      
        The summary print change to the STM32 driver is fixing an issue where
        the driver could easily end up spamming the logs with something that
        should be a debug message"
      
      * tag 'spi-fix-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: amd: Fix SPI_SPD7 value
        spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run
        spi: meson-spicc: fix do_div build error on non-arm64
        spi: intel: Use correct mask for flash and protected regions
        spi: mediatek: Fix package division error
        spi: tegra210-quad: Don't initialise DMA if not supported
        MAINTAINERS: Update HiSilicon SFC Driver maintainer
        spi: meson-spicc: move wait completion in driver to take bursts delay in account
        spi: stm32: Print summary 'callbacks suppressed' message
      a83e18cc
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 7c42d6f5
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
      
       - Provide helper for resetting both SDHCI and CQHCI
      
       - Fix reset for CQHCI (am654, brcmstb, esdhc-imx, of-arasan, tegra)
      
       - Fixup support for MMC_CAP_8_BIT_DATA (esdhc-imx)
      
      * tag 'mmc-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdhci-esdhc-imx: use the correct host caps for MMC_CAP_8_BIT_DATA
        mmc: sdhci_am654: Fix SDHCI_RESET_ALL for CQHCI
        mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI
        mms: sdhci-esdhc-imx: Fix SDHCI_RESET_ALL for CQHCI
        mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI
        mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI
        mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI
      7c42d6f5
    • Linus Torvalds's avatar
      Merge tag 'for-linus-2022111101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 9c730fe1
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - fix for memory leak (on error path) in Hyper-V driver (Yang
         Yingliang)
      
       - regression fix for handling 3rd barrel switch emulation in Wacom
         driver (Jason Gerecke)
      
      * tag 'for-linus-2022111101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: wacom: Fix logic used for 3rd barrel switch emulation
        HID: hyperv: fix possible memory leak in mousevsc_probe()
        HID: asus: Remove unused variable in asus_report_tool_width()
      9c730fe1
    • Linus Torvalds's avatar
      Merge tag 'sound-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 64b4aef1
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Things look calming down, as this contains only a few small fixes:
      
         - Fix for a corner-case bug with SG-buffer page allocation helper
      
         - A regression fix for Roland USB-audio device probe
      
         - A potential memory leak fix at the error path
      
         - Handful quirks and device-specific fixes for HD- and USB-audio"
      
      * tag 'sound-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda: fix potential memleak in 'add_widget_node'
        ALSA: memalloc: Don't fall back for SG-buffer with IOMMU
        ALSA: usb-audio: add quirk to fix Hamedal C20 disconnect issue
        ALSA: hda/realtek: Add Positivo C6300 model quirk
        ALSA: usb-audio: Add DSD support for Accuphase DAC-60
        ALSA: usb-audio: Add quirk entry for M-Audio Micro
        ALSA: hda/hdmi - enable runtime pm for more AMD display audio
        ALSA: usb-audio: Remove redundant workaround for Roland quirk
        ALSA: usb-audio: Yet more regression for for the delayed card registration
        ALSA: hda/ca0132: add quirk for EVGA Z390 DARK
        ALSA: hda: clarify comments on SCF changes
        ALSA: arm: pxa: pxa2xx-ac97-lib: fix return value check of platform_get_irq()
        ALSA: hda/realtek: Add quirk for ASUS Zenbook using CS35L41
      64b4aef1
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-11-11' of git://anongit.freedesktop.org/drm/drm · fd979ca6
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly pull request for graphics, mostly amdgpu and i915, with a
        couple of fixes for vc4 and panfrost, panel quirks and a kconfig
        change for rcar-du. Nothing seems to be too strange at this stage.
      
        amdgpu:
         - Fix s/r in amdgpu_vram_mgr_new
         - SMU 13.0.4 update
         - GPUVM TLB race fix
         - DCN 3.1.4 fixes
         - DCN 3.2.x fixes
         - Vega10 fan fix
         - BACO fix for Beige Goby board
         - PSR fix
         - GPU VM PT locking fixes
      
        amdkfd:
         - CRIU fixes
      
        vc4:
         - HDMI fixes to vc4.
      
        panfrost:
         - Make panfrost's uapi header compile with C++.
         - Handle 1 gb boundary correctly in panfrost mmu code.
      
        panel:
         - Add rotation quirks for 2 panels.
      
        rcar-du:
         - DSI Kconfig fix
      
        i915:
         - Fix sg_table handling in map_dma_buf
         - Send PSR update also on invalidate
         - Do not set cache_dirty for DGFX
         - Restore userptr probe_range behaviour"
      
      * tag 'drm-fixes-2022-11-11' of git://anongit.freedesktop.org/drm/drm: (29 commits)
        drm/amd/display: only fill dirty rectangles when PSR is enabled
        drm/amdgpu: disable BACO on special BEIGE_GOBY card
        drm/amdgpu: Drop eviction lock when allocating PT BO
        drm/amdgpu: Unlock bo_list_mutex after error handling
        Revert "drm/amdgpu: Revert "drm/amdgpu: getting fan speed pwm for vega10 properly""
        drm/amd/display: Enforce minimum prefetch time for low memclk on DCN32
        drm/amd/display: Fix gpio port mapping issue
        drm/amd/display: Fix reg timeout in enc314_enable_fifo
        drm/amd/display: Fix FCLK deviation and tool compile issues
        drm/amd/display: Zeromem mypipe heap struct before using it
        drm/amd/display: Update SR watermarks for DCN314
        drm/amdgpu: workaround for TLB seq race
        drm/amdkfd: Fix error handling in criu_checkpoint
        drm/amdkfd: Fix error handling in kfd_criu_restore_events
        drm/amd/pm: update SMU IP v13.0.4 msg interface header
        drm: rcar-du: Fix Kconfig dependency between RCAR_DU and RCAR_MIPI_DSI
        drm/panfrost: Split io-pgtable requests properly
        drm/amdgpu: Fix the lpfn checking condition in drm buddy
        drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017)
        drm: panel-orientation-quirks: Add quirk for Nanote UMPC-01
        ...
      fd979ca6
    • Sean Christopherson's avatar
      KVM: x86/mmu: Block all page faults during kvm_zap_gfn_range() · 6d3085e4
      Sean Christopherson authored
      When zapping a GFN range, pass 0 => ALL_ONES for the to-be-invalidated
      range to effectively block all page faults while the zap is in-progress.
      The invalidation helpers take a host virtual address, whereas zapping a
      GFN obviously provides a guest physical address and with the wrong unit
      of measurement (frame vs. byte).
      
      Alternatively, KVM could walk all memslots to get the associated HVAs,
      but thanks to SMM, that would require multiple lookups.  And practically
      speaking, kvm_zap_gfn_range() usage is quite rare and not a hot path,
      e.g. MTRR and CR0.CD are almost guaranteed to be done only on vCPU0
      during boot, and APICv inhibits are similarly infrequent operations.
      
      Fixes: edb298c6 ("KVM: x86/mmu: bump mmu notifier count in kvm_zap_gfn_range")
      Reported-by: default avatarChao Peng <chao.p.peng@linux.intel.com>
      Cc: stable@vger.kernel.org
      Cc: Maxim Levitsky <mlevitsk@redhat.com>
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Message-Id: <20221111001841.2412598-1-seanjc@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      6d3085e4
    • Linus Torvalds's avatar
      Merge tag 'net-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 4bbf3422
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from netfilter, wifi, can and bpf.
      
        Current release - new code bugs:
      
         - can: af_can: can_exit(): add missing dev_remove_pack() of
           canxl_packet
      
        Previous releases - regressions:
      
         - bpf, sockmap: fix the sk->sk_forward_alloc warning
      
         - wifi: mac80211: fix general-protection-fault in
           ieee80211_subif_start_xmit()
      
         - can: af_can: fix NULL pointer dereference in can_rx_register()
      
         - can: dev: fix skb drop check, avoid o-o-b access
      
         - nfnetlink: fix potential dead lock in nfnetlink_rcv_msg()
      
        Previous releases - always broken:
      
         - bpf: fix wrong reg type conversion in release_reference()
      
         - gso: fix panic on frag_list with mixed head alloc types
      
         - wifi: brcmfmac: fix buffer overflow in brcmf_fweh_event_worker()
      
         - wifi: mac80211: set TWT Information Frame Disabled bit as 1
      
         - eth: macsec offload related fixes, make sure to clear the keys from
           memory
      
         - tun: fix memory leaks in the use of napi_get_frags
      
         - tun: call napi_schedule_prep() to ensure we own a napi
      
         - tcp: prohibit TCP_REPAIR_OPTIONS if data was already sent
      
         - ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to
           network
      
         - tipc: fix a msg->req tlv length check
      
         - sctp: clear out_curr if all frag chunks of current msg are pruned,
           avoid list corruption
      
         - mctp: fix an error handling path in mctp_init(), avoid leaks"
      
      * tag 'net-6.1-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (101 commits)
        eth: sp7021: drop free_netdev() from spl2sw_init_netdev()
        MAINTAINERS: Move Vivien to CREDITS
        net: macvlan: fix memory leaks of macvlan_common_newlink
        ethernet: tundra: free irq when alloc ring failed in tsi108_open()
        net: mv643xx_eth: disable napi when init rxq or txq failed in mv643xx_eth_open()
        ethernet: s2io: disable napi when start nic failed in s2io_card_up()
        net: atlantic: macsec: clear encryption keys from the stack
        net: phy: mscc: macsec: clear encryption keys when freeing a flow
        stmmac: dwmac-loongson: fix missing of_node_put() while module exiting
        stmmac: dwmac-loongson: fix missing pci_disable_device() in loongson_dwmac_probe()
        stmmac: dwmac-loongson: fix missing pci_disable_msi() while module exiting
        cxgb4vf: shut down the adapter when t4vf_update_port_info() failed in cxgb4vf_open()
        mctp: Fix an error handling path in mctp_init()
        stmmac: intel: Update PCH PTP clock rate from 200MHz to 204.8MHz
        net: cxgb3_main: disable napi when bind qsets failed in cxgb_up()
        net: cpsw: disable napi in cpsw_ndo_open()
        iavf: Fix VF driver counting VLAN 0 filters
        ice: Fix spurious interrupt during removal of trusted VF
        net/mlx5e: TC, Fix slab-out-of-bounds in parse_tc_actions
        net/mlx5e: E-Switch, Fix comparing termination table instance
        ...
      4bbf3422
    • Jakub Kicinski's avatar
      Merge tag 'mlx5-fixes-2022-11-09' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · abd5ac18
      Jakub Kicinski authored
      Saeed Mahameed says:
      
      ====================
      mlx5 fixes 2022-11-02
      
      This series provides bug fixes to mlx5 driver.
      
      * tag 'mlx5-fixes-2022-11-09' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
        net/mlx5e: TC, Fix slab-out-of-bounds in parse_tc_actions
        net/mlx5e: E-Switch, Fix comparing termination table instance
        net/mlx5e: TC, Fix wrong rejection of packet-per-second policing
        net/mlx5e: Fix tc acts array not to be dependent on enum order
        net/mlx5e: Fix usage of DMA sync API
        net/mlx5e: Add missing sanity checks for max TX WQE size
        net/mlx5: fw_reset: Don't try to load device in case PCI isn't working
        net/mlx5: E-switch, Set to legacy mode if failed to change switchdev mode
        net/mlx5: Allow async trigger completion execution on single CPU systems
        net/mlx5: Bridge, verify LAG state when adding bond to bridge
      ====================
      
      Link: https://lore.kernel.org/r/20221109184050.108379-1-saeed@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      abd5ac18
    • Jakub Kicinski's avatar
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue · b3bbeba0
      Jakub Kicinski authored
      Tony Nguyen says:
      
      ====================
      Intel Wired LAN Driver Updates 2022-11-09 (ice, iavf)
      
      This series contains updates to ice and iavf drivers.
      
      Norbert stops disabling VF queues that are not enabled for ice driver.
      
      Michal stops accounting of VLAN 0 filter to match expectations of PF
      driver for iavf.
      
      * '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue:
        iavf: Fix VF driver counting VLAN 0 filters
        ice: Fix spurious interrupt during removal of trusted VF
      ====================
      
      Link: https://lore.kernel.org/r/20221110003744.201414-1-anthony.l.nguyen@intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b3bbeba0
    • Wei Yongjun's avatar
      eth: sp7021: drop free_netdev() from spl2sw_init_netdev() · de91b319
      Wei Yongjun authored
      It's not necessary to free netdev allocated with devm_alloc_etherdev()
      and using free_netdev() leads to double free.
      
      Fixes: fd3040b9 ("net: ethernet: Add driver for Sunplus SP7021")
      Signed-off-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
      Link: https://lore.kernel.org/r/20221109150116.2988194-1-weiyongjun@huaweicloud.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      de91b319
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2022-11-10' of... · b7ffd9d9
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2022-11-10' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Fix sg_table handling in map_dma_buf (Matthew Auld)
      - Send PSR update also on invalidate (Jouni Högander)
      - Do not set cache_dirty for DGFX (Niranjana Vishwanathapura)
      - Restore userptr probe_range behaviour (Matthew Auld)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/Y2zCy5q85qE9W0J8@tursulin-desk
      b7ffd9d9
  4. 10 Nov, 2022 13 commits