1. 24 Dec, 2020 22 commits
  2. 23 Dec, 2020 3 commits
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 58cf05f5
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of small fixes that came up recently for 5.11.
      
        The majority of fixes are usual HD-audio and USB-audio quirks, with a
        few PCM core fixes for addressing the information leak and yet more
        UBSAN fixes in the core side"
      
      * tag 'sound-fix-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G
        ALSA: hda/realtek: Apply jack fixup for Quanta NL3
        ALSA: usb-audio: Add implicit feeback support for the BOSS GT-1
        ALSA: usb-audio: Add alias entry for ASUS PRIME TRX40 PRO-S
        ALSA: core: Remove redundant comments
        ALSA: hda/realtek: Add quirk for MSI-GP73
        ALSA: pcm: oss: Fix a few more UBSAN fixes
        ALSA: pcm: Clear the full allocated memory at hw_params
        ALSA: memalloc: Align buffer allocations in page size
        ALSA: usb-audio: Disable sample read check if firmware doesn't give back
        ALSA: pcm: Remove snd_pcm_lib_preallocate_dma_free()
        ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices
        ALSA: core: memalloc: add page alignment for iram
        ALSA: hda/realtek - Supported Dell fixed type headset
        ALSA: hda/realtek: Remove dummy lineout on Acer TravelMate P648/P658
      58cf05f5
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v5.11' of... · a0881596
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Benson Leung:
       "cros_ec_typec:
      
         - A series from Prashant for Type-C to implement TYPEC_STATUS,
           parsing USB PD Partner ID VDOs, and registering partner altmodes.
      
        cros_ec misc:
      
         - Don't treat RTC events as wakeup sources in cros_ec_proto"
      
      * tag 'tag-chrome-platform-for-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: cros_ec_typec: Tolerate unrecognized mux flags
        platform/chrome: cros_ec_typec: Register partner altmodes
        platform/chrome: cros_ec_typec: Parse partner PD ID VDOs
        platform/chrome: cros_ec_typec: Introduce TYPEC_STATUS
        platform/chrome: cros_ec: Import Type C host commands
        platform/chrome: cros_ec_typec: Clear partner identity on device removal
        platform/chrome: cros_ec_typec: Fix remove partner logic
        platform/chrome: cros_ec_typec: Relocate set_port_params_v*() functions
        platform/chrome: Don't treat RTC events as wakeup sources
      a0881596
    • Linus Torvalds's avatar
      Merge tag 'linux-watchdog-5.11-rc1' of git://www.linux-watchdog.org/linux-watchdog · 6755f456
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
      
       - Removal of the pnx83xx driver
      
       - Add a binding for A100's watchdog controller
      
       - Add Rockchip compatibles to snps,dw-wdt.yaml
      
       - hpwdt: Disable NMI in Crash Kernel
      
       - Fix potential dereferencing of null pointer in watchdog_core
      
       - Several other small fixes and improvements
      
      * tag 'linux-watchdog-5.11-rc1' of git://www.linux-watchdog.org/linux-watchdog: (23 commits)
        watchdog: convert comma to semicolon
        watchdog: iTCO_wdt: use dev_*() instead of pr_*() for logging
        dt-binding: watchdog: add Rockchip compatibles to snps,dw-wdt.yaml
        watchdog: coh901327: add COMMON_CLK dependency
        dt-bindings: watchdog: sun4i: Add A100 compatible
        watchdog: qcom: Avoid context switch in restart handler
        watchdog: iTCO_wdt: use module_platform_device() macro
        watchdog: Fix potential dereferencing of null pointer
        watchdog: wdat_wdt: Fix missing kerneldoc reported by W=1
        watchdog/hpwdt: Reflect changes
        watchdog/hpwdt: Disable NMI in Crash Kernel
        wdt: sp805: add watchdog_stop on reboot
        watchdog: sbc_fitpc2_wdt: add __user annotations
        watchdog: geodewdt: remove unneeded break
        watchdog: rti-wdt: fix reference leak in rti_wdt_probe
        watchdog: qcom_wdt: set WDOG_HW_RUNNING bit when appropriate
        watchdog: remove pnx83xx driver
        watchdog: stm32_iwdg: don't print an error on probe deferral
        watchdog: sprd: change to use usleep_range() instead of busy loop
        watchdog: sprd: check busy bit before new loading rather than after that
        ...
      6755f456
  3. 22 Dec, 2020 15 commits
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.11-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 614cb589
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "These make the ACPI enumeration of devices take _DEP information into
        account more aggressively, fix device IDs matching in the ACPI part of
        the PNP devices framework and update the ACPI code related to
        suspend-to-idle to take systems based on AMD hardware into account
        properly.
      
        Specifics:
      
         - Modify the ACPI device enumeration code to defer the enumeration of
           devices with an _HID whose lists of operation region dependencies
           returned by _DEP are not empty after eliminating the entries
           representing known-benign dependencies from them (Rafael Wysocki,
           Hans de Goede).
      
         - Make the ACPI PNP code mathing device IDs also take the length of
           the given ID string into account (Hui Wang).
      
         - Add AMD systems support to the ACPI code handling suspend-to-idle
           via the PNP0D80 (System Power Management Controller) device _DSM
           interface (Shyam Sundar).
      
         - Move the suspend-to-idle handling code related to the PNP0D80
           device _DSM interface, which is x86-specific, to a separate file in
           the x86/ subdirectory (Rafael Wysocki)"
      
      * tag 'acpi-5.11-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: PM: s2idle: Move x86-specific code to the x86 directory
        ACPI: scan: Add Intel Baytrail Mailbox Device to acpi_ignore_dep_ids
        ACPI: scan: Avoid unnecessary second pass in acpi_bus_scan()
        ACPI: scan: Defer enumeration of devices with _DEP lists
        ACPI: scan: Evaluate _DEP before adding the device
        ACPI: PM: s2idle: Add AMD support to handle _DSM
        ACPI: PNP: compare the string length in the matching_id()
      614cb589
    • Linus Torvalds's avatar
      Merge tag 'pm-5.11-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 4960821a
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "These update the CPPC cpufreq driver and intel_pstate (which involves
        updating the cpufreq core and the schedutil governor) and make
        janitorial changes in the ACPI code handling processor objects.
      
        Specifics:
      
         - Rework the passive-mode "fast switch" path in the intel_pstate
           driver to allow it receive the minimum (required) and target
           (desired) performance information from the schedutil governor so as
           to avoid running some workloads too fast (Rafael Wysocki).
      
         - Make the intel_pstate driver allow the policy max limit to be
           increased after the guaranteed performance value for the given CPU
           has increased (Rafael Wysocki).
      
         - Clean up the handling of CPU coordination types in the CPPC cpufreq
           driver and make it export frequency domains information to user
           space via sysfs (Ionela Voinescu).
      
         - Fix the ACPI code handling processor objects to use a correct
           coordination type when it fails to map frequency domains and drop a
           redundant CPU map initialization from it (Ionela Voinescu, Punit
           Agrawal)"
      
      * tag 'pm-5.11-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: intel_pstate: Use most recent guaranteed performance values
        cpufreq: intel_pstate: Implement the ->adjust_perf() callback
        cpufreq: Add special-purpose fast-switching callback for drivers
        cpufreq: schedutil: Add util to struct sg_cpu
        cppc_cpufreq: replace per-cpu data array with a list
        cppc_cpufreq: expose information on frequency domains
        cppc_cpufreq: clarify support for coordination types
        cppc_cpufreq: use policy->cpu as driver of frequency setting
        ACPI: processor: fix NONE coordination for domain mapping failure
      4960821a
    • Linus Torvalds's avatar
      Merge tag 'kconfig-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 2762db75
      Linus Torvalds authored
      Pull Kconfig updates from Masahiro Yamada:
      
       - Support only Qt5 for qconf
      
       - Validate signal/slot connection at compile time of qconf
      
       - Sanitize header includes
      
      * tag 'kconfig-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kconfig: doc: fix $(fileno) to $(filename)
        kconfig: fix return value of do_error_if()
        kconfig: clean up header inclusion
        kconfig: qconf: show Qt version in the About dialog
        kconfig: make lkc.h self-sufficient #include-wise
        kconfig: qconf: convert to Qt5 new signal/slot connection syntax
        kconfig: qconf: use a variable to pass packages to pkg-config
        kconfig: qconf: drop Qt4 support
      2762db75
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 7b95f056
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Use /usr/bin/env for shebang lines in scripts
      
       - Remove useless -Wnested-externs warning flag
      
       - Update documents
      
       - Refactor log handling in modpost
      
       - Stop building modules without MODULE_LICENSE() tag
      
       - Make the insane combination of 'static' and EXPORT_SYMBOL an error
      
       - Improve genksyms to handle _Static_assert()
      
      * tag 'kbuild-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        Documentation/kbuild: Document platform dependency practises
        Documentation/kbuild: Document COMPILE_TEST dependencies
        genksyms: Ignore module scoped _Static_assert()
        modpost: turn static exports into error
        modpost: turn section mismatches to error from fatal()
        modpost: change license incompatibility to error() from fatal()
        modpost: turn missing MODULE_LICENSE() into error
        modpost: refactor error handling and clarify error/fatal difference
        modpost: rename merror() to error()
        kbuild: don't hardcode depmod path
        kbuild: doc: document subdir-y syntax
        kbuild: doc: clarify the difference between extra-y and always-y
        kbuild: doc: split if_changed explanation to a separate section
        kbuild: doc: merge 'Special Rules' and 'Custom kbuild commands' sections
        kbuild: doc: fix 'List directories to visit when descending' section
        kbuild: doc: replace arch/$(ARCH)/ with arch/$(SRCARCH)/
        kbuild: doc: update the description about kbuild Makefiles
        Makefile.extrawarn: remove -Wnested-externs warning
        tweewide: Fix most Shebang lines
      7b95f056
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 1375b980
      Linus Torvalds authored
      Merge KASAN updates from Andrew Morton.
      
      This adds a new hardware tag-based mode to KASAN.  The new mode is
      similar to the existing software tag-based KASAN, but relies on arm64
      Memory Tagging Extension (MTE) to perform memory and pointer tagging
      (instead of shadow memory and compiler instrumentation).
      
      By Andrey Konovalov and Vincenzo Frascino.
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (60 commits)
        kasan: update documentation
        kasan, mm: allow cache merging with no metadata
        kasan: sanitize objects when metadata doesn't fit
        kasan: clarify comment in __kasan_kfree_large
        kasan: simplify assign_tag and set_tag calls
        kasan: don't round_up too much
        kasan, mm: rename kasan_poison_kfree
        kasan, mm: check kasan_enabled in annotations
        kasan: add and integrate kasan boot parameters
        kasan: inline (un)poison_range and check_invalid_free
        kasan: open-code kasan_unpoison_slab
        kasan: inline random_tag for HW_TAGS
        kasan: inline kasan_reset_tag for tag-based modes
        kasan: remove __kasan_unpoison_stack
        kasan: allow VMAP_STACK for HW_TAGS mode
        kasan, arm64: unpoison stack only with CONFIG_KASAN_STACK
        kasan: introduce set_alloc_info
        kasan: rename get_alloc/free_info
        kasan: simplify quarantine_put call site
        kselftest/arm64: check GCR_EL1 after context switch
        ...
      1375b980
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux · c45647f9
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - Rework phys/virt translation
      
       - Add KASan support
      
       - Move DT out of linear map region
      
       - Use more PC-relative addressing in assembly
      
       - Remove FP emulation handling while in kernel mode
      
       - Link with '-z norelro'
      
       - remove old check for GCC <= 4.2 in ARM unwinder code
      
       - disable big endian if using clang's linker
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (46 commits)
        ARM: 9027/1: head.S: explicitly map DT even if it lives in the first physical section
        ARM: 9038/1: Link with '-z norelro'
        ARM: 9037/1: uncompress: Add OF_DT_MAGIC macro
        ARM: 9036/1: uncompress: Fix dbgadtb size parameter name
        ARM: 9035/1: uncompress: Add be32tocpu macro
        ARM: 9033/1: arm/smp: Drop the macro S(x,s)
        ARM: 9032/1: arm/mm: Convert PUD level pgtable helper macros into functions
        ARM: 9031/1: hyp-stub: remove unused .L__boot_cpu_mode_offset symbol
        ARM: 9044/1: vfp: use undef hook for VFP support detection
        ARM: 9034/1: __div64_32(): straighten up inline asm constraints
        ARM: 9030/1: entry: omit FP emulation for UND exceptions taken in kernel mode
        ARM: 9029/1: Make iwmmxt.S support Clang's integrated assembler
        ARM: 9028/1: disable KASAN in call stack capturing routines
        ARM: 9026/1: unwind: remove old check for GCC <= 4.2
        ARM: 9025/1: Kconfig: CPU_BIG_ENDIAN depends on !LD_IS_LLD
        ARM: 9024/1: Drop useless cast of "u64" to "long long"
        ARM: 9023/1: Spelling s/mmeory/memory/
        ARM: 9022/1: Change arch/arm/lib/mem*.S to use WEAK instead of .weak
        ARM: kvm: replace open coded VA->PA calculations with adr_l call
        ARM: head.S: use PC relative insn sequence to calculate PHYS_OFFSET
        ...
      c45647f9
    • Linus Torvalds's avatar
      Merge tag 'for-5.11/dm-changes' of... · d8355e74
      Linus Torvalds authored
      Merge tag 'for-5.11/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Add DM verity support for signature verification with 2nd keyring
      
       - Fix DM verity to skip verity work if IO completes with error while
         system is shutting down
      
       - Add new DM multipath "IO affinity" path selector that maps IO
         destined to a given path to a specific CPU based on user provided
         mapping
      
       - Rename DM multipath path selector source files to have "dm-ps" prefix
      
       - Add REQ_NOWAIT support to some other simple DM targets that don't
         block in more elaborate ways waiting for IO
      
       - Export DM crypt's kcryptd workqueue via sysfs (WQ_SYSFS)
      
       - Fix error return code in DM's target_message() if empty message is
         received
      
       - A handful of other small cleanups
      
      * tag 'for-5.11/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm cache: simplify the return expression of load_mapping()
        dm ebs: avoid double unlikely() notation when using IS_ERR()
        dm verity: skip verity work if I/O error when system is shutting down
        dm crypt: export sysfs of kcryptd workqueue
        dm ioctl: fix error return code in target_message
        dm crypt: Constify static crypt_iv_operations
        dm: add support for REQ_NOWAIT to various targets
        dm: rename multipath path selector source files to have "dm-ps" prefix
        dm mpath: add IO affinity path selector
        dm verity: Add support for signature verification with 2nd keyring
        dm: remove unnecessary current->bio_list check when submitting split bio
      d8355e74
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.11-take2' of... · 4e31dcc0
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.11-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull another hwmon update from Guenter Roeck:
       "The only patch in this series is removal of voltage and current
        reporting for AMD Zen CPUs.
      
        Turns out that was not worth the trouble, because it's all
        undocumented and not maintainable"
      
      * tag 'hwmon-for-v5.11-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (k10temp) Remove support for displaying voltage and current on Zen CPUs
      4e31dcc0
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.11' of git://git.infradead.org/users/hch/dma-mapping · 347d81b6
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - support for a partial IOMMU bypass (Alexey Kardashevskiy)
      
       - add a DMA API benchmark (Barry Song)
      
       - misc fixes (Tiezhu Yang, tangjianqiang)
      
      * tag 'dma-mapping-5.11' of git://git.infradead.org/users/hch/dma-mapping:
        selftests/dma: add test application for DMA_MAP_BENCHMARK
        dma-mapping: add benchmark support for streaming DMA APIs
        dma-contiguous: fix a typo error in a comment
        dma-pool: no need to check return value of debugfs_create functions
        powerpc/dma: Fallback to dma_ops when persistent memory present
        dma-mapping: Allow mixing bypass and mapped DMA operation
      347d81b6
    • Linus Torvalds's avatar
      Merge tag 'configfs-5.11' of git://git.infradead.org/users/hch/configfs · 4f06f210
      Linus Torvalds authored
      Pull configfs update from Christoph Hellwig:
       "Fix a kerneldoc comment (Alex Shi)"
      
      * tag 'configfs-5.11' of git://git.infradead.org/users/hch/configfs:
        configfs: fix kernel-doc markup issue
      4f06f210
    • Linus Torvalds's avatar
      Merge tag 'exfat-for-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat · e9e541ec
      Linus Torvalds authored
      Pull exfat update from Namjae Jeon:
       "Avoid page allocation failure from upcase table allocation"
      
      * tag 'exfat-for-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat:
        exfat: Avoid allocating upcase table using kcalloc()
      e9e541ec
    • Andi Kleen's avatar
      x86/split-lock: Avoid returning with interrupts enabled · e14fd4ba
      Andi Kleen authored
      When a split lock is detected always make sure to disable interrupts
      before returning from the trap handler.
      
      The kernel exit code assumes that all exits run with interrupts
      disabled, otherwise the SWAPGS sequence can race against interrupts and
      cause recursing page faults and later panics.
      
      The problem will only happen on CPUs with split lock disable
      functionality, so Icelake Server, Tiger Lake, Snow Ridge, Jacobsville.
      
      Fixes: ca4c6a98 ("x86/traps: Make interrupt enable/disable symmetric in C code")
      Fixes: bce9b042 ("x86/traps: Disable interrupts in exc_aligment_check()") # v5.8+
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e14fd4ba
    • Andrey Konovalov's avatar
      kasan: update documentation · 625d8673
      Andrey Konovalov authored
      This change updates KASAN documentation to reflect the addition of boot
      parameters and also reworks and clarifies some of the existing sections,
      in particular: defines what a memory granule is, mentions quarantine,
      makes Kunit section more readable.
      
      Link: https://lkml.kernel.org/r/748daf013e17d925b0fe00c1c3b5dce726dd2430.1606162397.git.andreyknvl@google.com
      Link: https://linux-review.googlesource.com/id/Ib1f83e91be273264b25f42b04448ac96b858849fSigned-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Reviewed-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Reviewed-by: default avatarMarco Elver <elver@google.com>
      Tested-by: default avatarVincenzo Frascino <vincenzo.frascino@arm.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Branislav Rankov <Branislav.Rankov@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Evgenii Stepanov <eugenis@google.com>
      Cc: Kevin Brodsky <kevin.brodsky@arm.com>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      625d8673
    • Andrey Konovalov's avatar
      kasan, mm: allow cache merging with no metadata · e86f8b09
      Andrey Konovalov authored
      The reason cache merging is disabled with KASAN is because KASAN puts its
      metadata right after the allocated object. When the merged caches have
      slightly different sizes, the metadata ends up in different places, which
      KASAN doesn't support.
      
      It might be possible to adjust the metadata allocation algorithm and make
      it friendly to the cache merging code. Instead this change takes a simpler
      approach and allows merging caches when no metadata is present. Which is
      the case for hardware tag-based KASAN with kasan.mode=prod.
      
      Link: https://lkml.kernel.org/r/37497e940bfd4b32c0a93a702a9ae4cf061d5392.1606162397.git.andreyknvl@google.com
      Link: https://linux-review.googlesource.com/id/Ia114847dfb2244f297d2cb82d592bf6a07455dbaCo-developed-by: default avatarVincenzo Frascino <Vincenzo.Frascino@arm.com>
      Signed-off-by: default avatarVincenzo Frascino <Vincenzo.Frascino@arm.com>
      Signed-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Reviewed-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Reviewed-by: default avatarMarco Elver <elver@google.com>
      Tested-by: default avatarVincenzo Frascino <vincenzo.frascino@arm.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Branislav Rankov <Branislav.Rankov@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Evgenii Stepanov <eugenis@google.com>
      Cc: Kevin Brodsky <kevin.brodsky@arm.com>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e86f8b09
    • Andrey Konovalov's avatar
      kasan: sanitize objects when metadata doesn't fit · 97593cad
      Andrey Konovalov authored
      KASAN marks caches that are sanitized with the SLAB_KASAN cache flag.
      Currently if the metadata that is appended after the object (stores e.g.
      stack trace ids) doesn't fit into KMALLOC_MAX_SIZE (can only happen with
      SLAB, see the comment in the patch), KASAN turns off sanitization
      completely.
      
      With this change sanitization of the object data is always enabled.
      However the metadata is only stored when it fits.  Instead of checking for
      SLAB_KASAN flag accross the code to find out whether the metadata is
      there, use cache->kasan_info.alloc/free_meta_offset.  As 0 can be a valid
      value for free_meta_offset, introduce KASAN_NO_FREE_META as an indicator
      that the free metadata is missing.
      
      Without this change all sanitized KASAN objects would be put into
      quarantine with generic KASAN.  With this change, only the objects that
      have metadata (i.e.  when it fits) are put into quarantine, the rest is
      freed right away.
      
      Along the way rework __kasan_cache_create() and add claryfying comments.
      
      Link: https://lkml.kernel.org/r/aee34b87a5e4afe586c2ac6a0b32db8dc4dcc2dc.1606162397.git.andreyknvl@google.com
      Link: https://linux-review.googlesource.com/id/Icd947e2bea054cb5cfbdc6cf6652227d97032dcbCo-developed-by: default avatarVincenzo Frascino <Vincenzo.Frascino@arm.com>
      Signed-off-by: default avatarVincenzo Frascino <Vincenzo.Frascino@arm.com>
      Signed-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Reviewed-by: default avatarMarco Elver <elver@google.com>
      Tested-by: default avatarVincenzo Frascino <vincenzo.frascino@arm.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Branislav Rankov <Branislav.Rankov@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Evgenii Stepanov <eugenis@google.com>
      Cc: Kevin Brodsky <kevin.brodsky@arm.com>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      97593cad