1. 07 6月, 2018 16 次提交
    • L
      Merge tag 'overflow-v4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 28576760
      Linus Torvalds 提交于
      Pull overflow updates from Kees Cook:
       "This adds the new overflow checking helpers and adds them to the
        2-factor argument allocators. And this adds the saturating size
        helpers and does a treewide replacement for the struct_size() usage.
        Additionally this adds the overflow testing modules to make sure
        everything works.
      
        I'm still working on the treewide replacements for allocators with
        "simple" multiplied arguments:
      
           *alloc(a * b, ...) -> *alloc_array(a, b, ...)
      
        and
      
           *zalloc(a * b, ...) -> *calloc(a, b, ...)
      
        as well as the more complex cases, but that's separable from this
        portion of the series. I expect to have the rest sent before -rc1
        closes; there are a lot of messy cases to clean up.
      
        Summary:
      
         - Introduce arithmetic overflow test helper functions (Rasmus)
      
         - Use overflow helpers in 2-factor allocators (Kees, Rasmus)
      
         - Introduce overflow test module (Rasmus, Kees)
      
         - Introduce saturating size helper functions (Matthew, Kees)
      
         - Treewide use of struct_size() for allocators (Kees)"
      
      * tag 'overflow-v4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        treewide: Use struct_size() for devm_kmalloc() and friends
        treewide: Use struct_size() for vmalloc()-family
        treewide: Use struct_size() for kmalloc()-family
        device: Use overflow helpers for devm_kmalloc()
        mm: Use overflow helpers in kvmalloc()
        mm: Use overflow helpers in kmalloc_array*()
        test_overflow: Add memory allocation overflow tests
        overflow.h: Add allocation size calculation helpers
        test_overflow: Report test failures
        test_overflow: macrofy some more, do more tests for free
        lib: add runtime test of check_*_overflow functions
        compiler.h: enable builtin overflow checkers and add fallback code
      28576760
    • L
      Merge tag 'trace-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 5eb6eed7
      Linus Torvalds 提交于
      Pull tracing updates from Steven Rostedt:
       "One new feature was added to ftrace, which is the trace_marker now
        supports triggers. For example:
      
          # cd /sys/kernel/debug/tracing
          # echo 'snapshot' > events/ftrace/print/trigger
          # echo 'cause snapshot' > trace_marker
      
        The rest of the changes are various clean ups and also one stable fix
        that was added late in the cycle"
      
      * tag 'trace-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (21 commits)
        tracing: Use match_string() instead of open coding it in trace_set_options()
        branch-check: fix long->int truncation when profiling branches
        ring-buffer: Fix typo in comment
        ring-buffer: Fix a bunch of typos in comments
        tracing/selftest: Add test to test simple snapshot trigger for trace_marker
        tracing/selftest: Add test to test hist trigger between kernel event and trace_marker
        tracing/selftest: Add selftests to test trace_marker histogram triggers
        ftrace/selftest: Fix reset_trigger() to handle triggers with filters
        ftrace/selftest: Have the reset_trigger code be a bit more careful
        tracing: Document trace_marker triggers
        tracing: Allow histogram triggers to access ftrace internal events
        tracing: Prevent further users of zero size static arrays in trace events
        tracing: Have zero size length in filter logic be full string
        tracing: Add trigger file for trace_markers tracefs/ftrace/print
        tracing: Do not show filter file for ftrace internal events
        tracing: Add brackets in ftrace event dynamic arrays
        tracing: Have event_trace_init() called by trace_init_tracefs()
        tracing: Add __find_event_file() to find event files without restrictions
        tracing: Do not reference event data in post call triggers
        tracepoints: Fix the descriptions of tracepoint_probe_register{_prio}
        ...
      5eb6eed7
    • L
      Merge tag 'audit-pr-20180605' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · 8b5c6a3a
      Linus Torvalds 提交于
      Pull audit updates from Paul Moore:
       "Another reasonable chunk of audit changes for v4.18, thirteen patches
        in total.
      
        The thirteen patches can mostly be broken down into one of four
        categories: general bug fixes, accessor functions for audit state
        stored in the task_struct, negative filter matches on executable
        names, and extending the (relatively) new seccomp logging knobs to the
        audit subsystem.
      
        The main driver for the accessor functions from Richard are the
        changes we're working on to associate audit events with containers,
        but I think they have some standalone value too so I figured it would
        be good to get them in now.
      
        The seccomp/audit patches from Tyler apply the seccomp logging
        improvements from a few releases ago to audit's seccomp logging;
        starting with this patchset the changes in
        /proc/sys/kernel/seccomp/actions_logged should apply to both the
        standard kernel logging and audit.
      
        As usual, everything passes the audit-testsuite and it happens to
        merge cleanly with your tree"
      
      [ Heh, except it had trivial merge conflicts with the SELinux tree that
        also came in from Paul   - Linus ]
      
      * tag 'audit-pr-20180605' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: Fix wrong task in comparison of session ID
        audit: use existing session info function
        audit: normalize loginuid read access
        audit: use new audit_context access funciton for seccomp_actions_logged
        audit: use inline function to set audit context
        audit: use inline function to get audit context
        audit: convert sessionid unset to a macro
        seccomp: Don't special case audited processes when logging
        seccomp: Audit attempts to modify the actions_logged sysctl
        seccomp: Configurable separator for the actions_logged string
        seccomp: Separate read and write code for actions_logged sysctl
        audit: allow not equal op for audit by executable
        audit: add syscall information to FEATURE_CHANGE records
      8b5c6a3a
    • L
      Merge tag 'selinux-pr-20180605' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 8b70543e
      Linus Torvalds 提交于
      Pull SELinux updates from Paul Moore:
       "SELinux is back with a quiet pull request for v4.18. Three patches,
        all small: two cleanups of the SELinux audit records, and one to
        migrate to a newly defined type (vm_fault_t).
      
        Everything passes our test suite, and as of about five minutes ago it
        merged cleanly with your tree"
      
      * tag 'selinux-pr-20180605' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        audit: normalize MAC_POLICY_LOAD record
        audit: normalize MAC_STATUS record
        security: selinux: Change return type to vm_fault_t
      8b70543e
    • L
      Merge branch 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 10b1eb7d
      Linus Torvalds 提交于
      Pull security system updates from James Morris:
      
       - incorporate new socketpair() hook into LSM and wire up the SELinux
         and Smack modules. From David Herrmann:
      
           "The idea is to allow SO_PEERSEC to be called on AF_UNIX sockets
            created via socketpair(2), and return the same information as if
            you emulated socketpair(2) via a temporary listener socket.
      
            Right now SO_PEERSEC will return the unlabeled credentials for a
            socketpair, rather than the actual credentials of the creating
            process."
      
       - remove the unused security_settime LSM hook (Sargun Dhillon).
      
       - remove some stack allocated arrays from the keys code (Tycho
         Andersen)
      
      * 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        dh key: get rid of stack allocated array for zeroes
        dh key: get rid of stack allocated array
        big key: get rid of stack array allocation
        smack: provide socketpair callback
        selinux: provide socketpair callback
        net: hook socketpair() into LSM
        security: add hook for socketpair()
        security: remove security_settime
      10b1eb7d
    • L
      Merge tag 'printk-for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk · d75ae5bd
      Linus Torvalds 提交于
      Pull printk updates from Petr Mladek:
      
       - Help userspace log daemons to catch up with a flood of messages. They
         will get woken after each message even if the console is far behind
         and handled by another process.
      
       - Flush printk safe buffers safely even when panic() happens in the
         normal context.
      
       - Fix possible va_list reuse when race happened in printk_safe().
      
       - Remove %pCr printf format to prevent sleeping in the atomic context.
      
       - Misc vsprintf code cleanup.
      
      * tag 'printk-for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
        printk: drop in_nmi check from printk_safe_flush_on_panic()
        lib/vsprintf: Remove atomic-unsafe support for %pCr
        serial: sh-sci: Stop using printk format %pCr
        thermal: bcm2835: Stop using printk format %pCr
        clk: renesas: cpg-mssr: Stop using printk format %pCr
        printk: fix possible reuse of va_list variable
        printk: wake up klogd in vprintk_emit
        vsprintf: Tweak pF/pf comment
        lib/vsprintf: Mark expected switch fall-through
        lib/vsprintf: Replace space with '_' before crng is ready
        lib/vsprintf: Deduplicate pointer_string()
        lib/vsprintf: Move pointer_string() upper
        lib/vsprintf: Make flag_spec global
        lib/vsprintf: Make strspec global
        lib/vsprintf: Make dec_spec global
        lib/test_printf: Mark big constant with UL
      d75ae5bd
    • L
      Merge tag 'for-linus-4.18' of git://github.com/cminyard/linux-ipmi · 0eb00613
      Linus Torvalds 提交于
      Pull IPMI updates from Corey Minyard:
       "It's been a busy release for the IPMI driver. Some notable changes:
      
         - A user was running into timeout issues doing maintenance commands
           over the IPMB network behind an IPMI controller.
      
           Extend the maintenance mode concept to messages over IPMB and allow
           the timeouts to be tuned.
      
         - Lots of cleanup, style fixing, some bugfixes, and such.
      
         - At least one user was having trouble with the way the IPMI driver
           would lock the i2c driver module it used.
      
           The IPMI driver was not designed for hotplug. However, hotplug is a
           reality now, so the IPMI driver was modified to support hotplug.
      
         - The proc interface code is now completely removed. Long live sysfs!"
      
      * tag 'for-linus-4.18' of git://github.com/cminyard/linux-ipmi: (35 commits)
        ipmi: Properly release srcu locks on error conditions
        ipmi: NPCM7xx KCS BMC: enable interrupt to the host
        ipmi:bt: Set the timeout before doing a capabilities check
        ipmi: Remove the proc interface
        ipmi_ssif: Fix uninitialized variable issue
        ipmi: add an NPCM7xx KCS BMC driver
        ipmi_si: Clean up shutdown a bit
        ipmi_si: Rename intf_num to si_num
        ipmi: Remove smi->intf checks
        ipmi_ssif: Get rid of unused intf_num
        ipmi: Get rid of ipmi_user_t and ipmi_smi_t in include files
        ipmi: ipmi_unregister_smi() cannot fail, have it return void
        ipmi_devintf: Add an error return on invalid ioctls
        ipmi: Remove usecount function from interfaces
        ipmi_ssif: Remove usecount handling
        ipmi: Remove condition on interface shutdown
        ipmi_ssif: Convert over to a shutdown handler
        ipmi_si: Convert over to a shutdown handler
        ipmi: Rework locking and shutdown for hot remove
        ipmi: Fix some counter issues
        ...
      0eb00613
    • L
      Merge tag 'edac_for_4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 84504930
      Linus Torvalds 提交于
      Pull EDAC updates from Borislav Petkov:
      
       - Stratix10 SDRAM support to altera_edac (Thor Thayer)
      
       - the usual misc fixes all over the place
      
      [ Also, shared branch for socfpga_stratix10.dtsi file changes with the
        socfpga tree ]
      
      * tag 'edac_for_4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
        EDAC, ghes: Make platform-based whitelisting x86-only
        EDAC, altera: Fix ARM64 build warning
        EDAC, skx: Fix skx_edac build error when ACPI_NFIT=m
        EDAC, ghes: Use BIT() macro
        EDAC, ghes: Add DDR4 and NVDIMM memory types
        EDAC, altera: Handle SDRAM Uncorrectable Errors on Stratix10
        Documentation: dt: edac: Move Altera SOCFPGA EDAC file
        EDAC, altera: Add support for Stratix10 SDRAM EDAC
        Documentation: dt: socfpga: Add Stratix10 ECC Manager binding
        EDAC, ghes: Remove unused argument to ghes_edac_report_mem_error()
        arm64: dts: stratix10: add sdram ecc
        EDAC, i7core: Fix spelling mistake: "redundacy" -> "redundancy"
        EDAC, ghes: Add a null pointer check in ghes_edac_unregister()
        ghes, EDAC: Fix ghes_edac registration
        arm64: dts: stratix10: Change pad skew values for EMAC0 PHY driver
        ARM: dts: consistently use 'atmel' as at24 manufacturer in cyclone5
        arm64: dts: stratix10: Add PL330 DMAC to Stratix10 dts
        arm64: dts: stratix10: enable i2c, add i2c periperals
        arm64: dts: stratix10: use clock bindings for the Stratix10 platform
      84504930
    • L
      Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 311da497
      Linus Torvalds 提交于
      Pull ARM updates from Russell King:
      
       - Initial round of Spectre variant 1 and variant 2 fixes for 32-bit ARM
      
       - Clang support improvements
      
       - nommu updates for v8 MPU
      
       - enable ARM_MODULE_PLTS by default to avoid problems loading modules
         with larger kernels
      
       - vmlinux.lds and dma-mapping cleanups
      
      * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (31 commits)
        ARM: spectre-v1: fix syscall entry
        ARM: spectre-v1: add array_index_mask_nospec() implementation
        ARM: spectre-v1: add speculation barrier (csdb) macros
        ARM: KVM: report support for SMCCC_ARCH_WORKAROUND_1
        ARM: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
        ARM: spectre-v2: KVM: invalidate icache on guest exit for Brahma B15
        ARM: KVM: invalidate icache on guest exit for Cortex-A15
        ARM: KVM: invalidate BTB on guest exit for Cortex-A12/A17
        ARM: spectre-v2: warn about incorrect context switching functions
        ARM: spectre-v2: add firmware based hardening
        ARM: spectre-v2: harden user aborts in kernel space
        ARM: spectre-v2: add Cortex A8 and A15 validation of the IBE bit
        ARM: spectre-v2: harden branch predictor on context switches
        ARM: spectre: add Kconfig symbol for CPUs vulnerable to Spectre
        ARM: bugs: add support for per-processor bug checking
        ARM: bugs: hook processor bug checking into SMP and suspend paths
        ARM: bugs: prepare processor bug infrastructure
        ARM: add more CPU part numbers for Cortex and Brahma B15 CPUs
        ARM: 8774/1: remove no-op macro VMLINUX_SYMBOL()
        ARM: 8773/1: amba: Export amba_bustype
        ...
      311da497
    • L
      Merge tag 'linux-kselftest-4.18-rc1' of... · ca95bf62
      Linus Torvalds 提交于
      Merge tag 'linux-kselftest-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest update from Shuah Khan:
      
       - Work to restructure timers test suite to move PIE out of rtctest from
         Alexandre Belloni.
      
       - Several minor spelling and bug fixes.
      
       - New cgroup tests from Roman Gushchin and Mike Rapoport.
      
       - Kselftest framework changes to handle and report skipped tests
         correctly.
      
         Prior to these changes, framework treated all non-zero return codes
         from tests as failures. When tests are skipped with non-zero return
         code, due to unmet dependencies and/or unsupported configuration,
         reporting them as failed lead to false negatives on the tests that
         couldn't be run.
      
       - Fixes to test Makefiles to remove unnecessary RUN_TESTS and
         EMIT_TESTS overrides and use common defines from lib.mk.
      
       - Fixes to several tests to return correct Kselftest skip code.
      
       - Changes to improve test output.
      
      * tag 'linux-kselftest-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (55 commits)
        selftests: lib: fix prime_numbers module search and skip logic
        selftests: intel_pstate: notification about privilege required to run intel_pstate testing script
        selftests: cgroup/memcontrol: add basic test for socket accounting
        selftest: intel_pstate: debug support message from aperf.c and return value
        kselftest/cgroup: fix variable dereferenced before check warning
        selftests/intel_pstate: Enhance table printing
        selftests/intel_pstate: Improve test, minor fixes
        selftests: cgroup/memcontrol: add basic test for swap controls
        selftests: cgroup: add memory controller self-tests
        selftests: memfd: split regular and hugetlbfs tests
        selftests: net: return Kselftest Skip code for skipped tests
        selftests: mqueue: return Kselftest Skip code for skipped tests
        selftests: memory-hotplug: return Kselftest Skip code for skipped tests
        selftests: memfd: return Kselftest Skip code for skipped tests
        selftests: membarrier: return Kselftest Skip code for skipped tests
        selftests: media_tests: return Kselftest Skip code for skipped tests
        selftests: locking: return Kselftest Skip code for skipped tests
        selftests: locking: add Makefile for locking test
        selftests: lib: return Kselftest Skip code for skipped tests
        selftests: lib: add prime_numbers.sh test to Makefile
        ...
      ca95bf62
    • L
      Merge tag 'kconfig-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 0ad39cb3
      Linus Torvalds 提交于
      Pull Kconfig updates from Masahiro Yamada:
       "Kconfig now supports new functionality to perform textual
        substitution. It has been a while since Linus suggested to move
        compiler option tests from makefiles to Kconfig. Finally, here it is.
      
        The implementation has been generalized into a Make-like macro
        language.
      
        Some built-in functions such as 'shell' are provided. Variables and
        user-defined functions are also supported so that 'cc-option',
        'ld-option', etc. are implemented as macros.
      
        Summary:
      
         - refactor package checks for building {m,n,q,g}conf
      
         - remove unused/unmaintained localization support
      
         - remove Kbuild cache
      
         - drop CONFIG_CROSS_COMPILE support
      
         - replace 'option env=' with direct variable expansion
      
         - add built-in functions such as 'shell'
      
         - support variables and user-defined functions
      
         - add helper macros as as 'cc-option'
      
         - add unit tests and a document of the new macro language
      
         - add 'testconfig' to help
      
         - fix warnings from GCC 8.1"
      
      * tag 'kconfig-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
        kconfig: Avoid format overflow warning from GCC 8.1
        kbuild: Move last word of nconfig help to the previous line
        kconfig: Add testconfig into make help output
        kconfig: add basic helper macros to scripts/Kconfig.include
        kconfig: show compiler version text in the top comment
        kconfig: test: add Kconfig macro language tests
        Documentation: kconfig: document a new Kconfig macro language
        kconfig: error out if a recursive variable references itself
        kconfig: add 'filename' and 'lineno' built-in variables
        kconfig: add 'info', 'warning-if', and 'error-if' built-in functions
        kconfig: expand lefthand side of assignment statement
        kconfig: support append assignment operator
        kconfig: support simply expanded variable
        kconfig: support user-defined function and recursively expanded variable
        kconfig: begin PARAM state only when seeing a command keyword
        kconfig: replace $(UNAME_RELEASE) with function call
        kconfig: add 'shell' built-in function
        kconfig: add built-in function support
        kconfig: make default prompt of mainmenu less specific
        kconfig: remove sym_expand_string_value()
        ...
      0ad39cb3
    • K
      treewide: Use struct_size() for devm_kmalloc() and friends · 0ed2dd03
      Kees Cook 提交于
      Replaces open-coded struct size calculations with struct_size() for
      devm_*, f2fs_*, and sock_* allocations. Automatically generated (and
      manually adjusted) from the following Coccinelle script:
      
      // Direct reference to struct field.
      @@
      identifier alloc =~ "devm_kmalloc|devm_kzalloc|sock_kmalloc|f2fs_kmalloc|f2fs_kzalloc";
      expression HANDLE;
      expression GFP;
      identifier VAR, ELEMENT;
      expression COUNT;
      @@
      
      - alloc(HANDLE, sizeof(*VAR) + COUNT * sizeof(*VAR->ELEMENT), GFP)
      + alloc(HANDLE, struct_size(VAR, ELEMENT, COUNT), GFP)
      
      // mr = kzalloc(sizeof(*mr) + m * sizeof(mr->map[0]), GFP_KERNEL);
      @@
      identifier alloc =~ "devm_kmalloc|devm_kzalloc|sock_kmalloc|f2fs_kmalloc|f2fs_kzalloc";
      expression HANDLE;
      expression GFP;
      identifier VAR, ELEMENT;
      expression COUNT;
      @@
      
      - alloc(HANDLE, sizeof(*VAR) + COUNT * sizeof(VAR->ELEMENT[0]), GFP)
      + alloc(HANDLE, struct_size(VAR, ELEMENT, COUNT), GFP)
      
      // Same pattern, but can't trivially locate the trailing element name,
      // or variable name.
      @@
      identifier alloc =~ "devm_kmalloc|devm_kzalloc|sock_kmalloc|f2fs_kmalloc|f2fs_kzalloc";
      expression HANDLE;
      expression GFP;
      expression SOMETHING, COUNT, ELEMENT;
      @@
      
      - alloc(HANDLE, sizeof(SOMETHING) + COUNT * sizeof(ELEMENT), GFP)
      + alloc(HANDLE, CHECKME_struct_size(&SOMETHING, ELEMENT, COUNT), GFP)
      Signed-off-by: NKees Cook <keescook@chromium.org>
      0ed2dd03
    • K
      treewide: Use struct_size() for vmalloc()-family · b4b06db1
      Kees Cook 提交于
      This only finds one hit in the entire tree, but here's the Coccinelle:
      
      // Directly refer to structure's field
      @@
      identifier alloc =~ "vmalloc|vzalloc";
      identifier VAR, ELEMENT;
      expression COUNT;
      @@
      
      - alloc(sizeof(*VAR) + COUNT * sizeof(*VAR->ELEMENT))
      + alloc(struct_size(VAR, ELEMENT, COUNT))
      
      // mr = kzalloc(sizeof(*mr) + m * sizeof(mr->map[0]), GFP_KERNEL);
      @@
      identifier alloc =~ "vmalloc|vzalloc";
      identifier VAR, ELEMENT;
      expression COUNT;
      @@
      
      - alloc(sizeof(*VAR) + COUNT * sizeof(VAR->ELEMENT[0]))
      + alloc(struct_size(VAR, ELEMENT, COUNT))
      
      // Same pattern, but can't trivially locate the trailing element name,
      // or variable name.
      @@
      identifier alloc =~ "vmalloc|vzalloc";
      expression SOMETHING, COUNT, ELEMENT;
      @@
      
      - alloc(sizeof(SOMETHING) + COUNT * sizeof(ELEMENT))
      + alloc(CHECKME_struct_size(&SOMETHING, ELEMENT, COUNT))
      Signed-off-by: NKees Cook <keescook@chromium.org>
      b4b06db1
    • K
      treewide: Use struct_size() for kmalloc()-family · acafe7e3
      Kees Cook 提交于
      One of the more common cases of allocation size calculations is finding
      the size of a structure that has a zero-sized array at the end, along
      with memory for some number of elements for that array. For example:
      
      struct foo {
          int stuff;
          void *entry[];
      };
      
      instance = kmalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);
      
      Instead of leaving these open-coded and prone to type mistakes, we can
      now use the new struct_size() helper:
      
      instance = kmalloc(struct_size(instance, entry, count), GFP_KERNEL);
      
      This patch makes the changes for kmalloc()-family (and kvmalloc()-family)
      uses. It was done via automatic conversion with manual review for the
      "CHECKME" non-standard cases noted below, using the following Coccinelle
      script:
      
      // pkey_cache = kmalloc(sizeof *pkey_cache + tprops->pkey_tbl_len *
      //                      sizeof *pkey_cache->table, GFP_KERNEL);
      @@
      identifier alloc =~ "kmalloc|kzalloc|kvmalloc|kvzalloc";
      expression GFP;
      identifier VAR, ELEMENT;
      expression COUNT;
      @@
      
      - alloc(sizeof(*VAR) + COUNT * sizeof(*VAR->ELEMENT), GFP)
      + alloc(struct_size(VAR, ELEMENT, COUNT), GFP)
      
      // mr = kzalloc(sizeof(*mr) + m * sizeof(mr->map[0]), GFP_KERNEL);
      @@
      identifier alloc =~ "kmalloc|kzalloc|kvmalloc|kvzalloc";
      expression GFP;
      identifier VAR, ELEMENT;
      expression COUNT;
      @@
      
      - alloc(sizeof(*VAR) + COUNT * sizeof(VAR->ELEMENT[0]), GFP)
      + alloc(struct_size(VAR, ELEMENT, COUNT), GFP)
      
      // Same pattern, but can't trivially locate the trailing element name,
      // or variable name.
      @@
      identifier alloc =~ "kmalloc|kzalloc|kvmalloc|kvzalloc";
      expression GFP;
      expression SOMETHING, COUNT, ELEMENT;
      @@
      
      - alloc(sizeof(SOMETHING) + COUNT * sizeof(ELEMENT), GFP)
      + alloc(CHECKME_struct_size(&SOMETHING, ELEMENT, COUNT), GFP)
      Signed-off-by: NKees Cook <keescook@chromium.org>
      acafe7e3
    • L
      Merge tag 'kbuild-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 8715ee75
      Linus Torvalds 提交于
      Pull Kbuild updates from Masahiro Yamada:
      
       - improve fixdep to coalesce consecutive slashes in dep-files
      
       - fix some issues of the maintainer string generation in deb-pkg script
      
       - remove unused CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX and clean-up
         several tools and linker scripts
      
       - clean-up modpost
      
       - allow to enable the dead code/data elimination for PowerPC in EXPERT
         mode
      
       - improve two coccinelle scripts for better performance
      
       - pass endianness and machine size flags to sparse for all architecture
      
       - misc fixes
      
      * tag 'kbuild-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (25 commits)
        kbuild: add machine size to CHECKFLAGS
        kbuild: add endianness flag to CHEKCFLAGS
        kbuild: $(CHECK) doesnt need NOSTDINC_FLAGS twice
        scripts: Fixed printf format mismatch
        scripts/tags.sh: use `find` for $ALLSOURCE_ARCHS generation
        coccinelle: deref_null: improve performance
        coccinelle: mini_lock: improve performance
        powerpc: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selected
        kbuild: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selectable if enabled
        kbuild: LD_DEAD_CODE_DATA_ELIMINATION no -ffunction-sections/-fdata-sections for module build
        kbuild: Fix asm-generic/vmlinux.lds.h for LD_DEAD_CODE_DATA_ELIMINATION
        modpost: constify *modname function argument where possible
        modpost: remove redundant is_vmlinux() test
        modpost: use strstarts() helper more widely
        modpost: pass struct elf_info pointer to get_modinfo()
        checkpatch: remove VMLINUX_SYMBOL() check
        vmlinux.lds.h: remove no-op macro VMLINUX_SYMBOL()
        kbuild: remove CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
        export.h: remove code for prefixing symbols with underscore
        depmod.sh: remove symbol prefix support
        ...
      8715ee75
    • L
      Merge tag 'sound-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 126f7051
      Linus Torvalds 提交于
      Pull sound updates from Takashi Iwai:
       "We've got many code additions at this cycle as a result of quite a few
        new drivers. Below are highlights:
      
        Core stuff:
         - Fix the long-standing issue with the device registration order; the
           control device is now registered at last
         - PCM locking code cleanups for RT kernels
         - Fixes for possible races in ALSA timer resolution accesses
         - TLV offset definitions in uapi
      
        ASoC:
         - Many fixes for the topology stuff, including fixes for v4 ABI
           compatibility
         - Lots of cleanups / quirks for Intel platforms based on Realtek
           CODECs
         - Continued componentization works, removing legacy CODEC stuff
         - Conversion of OMAP DMA to the new, more standard SDMA-PCM driver
         - Fixes and updates to Cirrus Logic SoC drivers
         - New Qualcomm DSP support
         - New drivers for Analog SSM2305, Atmel I2S controllers, Mediatek
           MT6351, MT6797 and MT7622, Qualcomm DSPs, Realtek RT1305, RT1306
           and RT5668 and TI TSCS454
      
        HD-audio:
         - Finally better support for some CA0132 boards, allowing Windows
           firmware
         - HP Spectre x360 support along with a bulk of COEF stuff
         - Blacklisting power save default some known boards reported on
           Fedora
      
        USB-audio:
         - Continued improvements on UAC3 support; now BADD is supported
         - Fixes / improvements for Dell WD15 dock
         - Allow DMA coherent pages for PCM buffers for ARCH, MIPS & co
      
        Others:
         - New Xen sound frontend driver support
         - Cache implementation and other improvements for FireWire DICE
         - Conversions to octal permissions in allover places"
      
      * tag 'sound-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (386 commits)
        ASoC: dapm: delete dapm_kcontrol_data paths list before freeing it
        ALSA: usb-audio: remove redundant check on err
        ASoC: topology: Move skl-tplg-interface.h to uapi
        ASoC: topology: Move v4 manifest header data structures to uapi
        ASoC: topology: Improve backwards compatibility with v4 topology files
        ALSA: pci/hda: Remove unused, broken, header file
        ASoC: TSCS454: Add Support
        ASoC: Intel: kbl: Move codec sysclk config to codec_init function
        ASoC: simple-card: set cpu dai clk in hw_params
        ALSA: hda - Handle kzalloc() failure in snd_hda_attach_pcm_stream()
        ALSA: oxygen: use match_string() helper
        ASoC: dapm: use match_string() helper
        ASoC: max98095: use match_string() helper
        ASoC: max98088: use match_string() helper
        ASoC: Intel: bytcr_rt5651: Set card long_name based on quirks
        ASoC: mt6797-mt6351: add hostless phone call path
        ASoC: mt6797: add Hostless DAI
        ASoC: mt6797: add PCM interface
        ASoC: mediatek: export mtk-afe symbols as needed
        ASoC: codecs: PCM1789: include gpio/consumer.h
        ...
      126f7051
  2. 06 6月, 2018 24 次提交
    • L
      Merge tag 'drm-next-2018-06-06-1' of git://anongit.freedesktop.org/drm/drm · 135c5504
      Linus Torvalds 提交于
      Pull drm updates from Dave Airlie:
       "This starts to support NVIDIA volta hardware with nouveau, and adds
        amdgpu support for the GPU in the Kabylake-G (the intel + radeon
        single package chip), along with some initial Intel icelake enabling.
      
        Summary:
      
        New Drivers:
         - v3d - driver for broadcom V3D V3.x+ hardware
         - xen-front - XEN PV display frontend
      
        core:
         - handle zpos normalization in the core
         - stop looking at legacy pointers in atomic paths
         - improved scheduler documentation
         - improved aspect ratio validation
         - aspect ratio support for 64:27 and 256:135
         - drop unused control node code.
      
        i915:
         - Icelake (ICL) enabling
         - GuC/HuC refactoring
         - PSR/PSR2 enabling and fixes
         - DPLL management refactoring
         - DP MST fixes
         - NV12 enabling
         - HDCP improvements
         - GEM/Execlist/reset improvements
         - GVT improvements
         - stolen memory first 4k fix
      
        amdgpu:
         - Vega 20 support
         - VEGAM support (Kabylake-G)
         - preOS scanout buffer reservation
         - power management gfxoff support for raven
         - SR-IOV fixes
         - Vega10 power profiles and clock voltage control
         - scatter/gather display support on CZ/ST
      
        amdkfd:
         - GFX9 dGPU support
         - userptr memory mapping
      
        nouveau:
         - major refactoring for Volta GV100 support
      
        tda998x:
         - HDMI i2c CEC support
      
        etnaviv:
         - removed unused logging code
         - license text cleanups
         - MMU handling improvements
         - timeout fence fix for 50 days uptime
      
        tegra:
         - IOMMU support in gr2d/gr3d drivers
         - zpos support
      
        vc4:
         - syncobj support
         - CTM, plane alpha and async cursor support
      
        analogix_dp:
         - HPD and aux chan fixes
      
        sun4i:
         - MIPI DSI support
      
        tilcdc:
         - clock divider fixes for OMAP-l138 LCDK board
      
        rcar-du:
         - R8A77965 support
         - dma-buf fences fixes
         - hardware indexed crtc/du group handling
         - generic zplane property support
      
        atmel-hclcdc:
         - generic zplane property support
      
        mediatek:
         - use generic video mode function
      
        exynos:
         - S5PV210 FIMD variant support
         - IPP v2 framework
         - more HW overlays support"
      
      * tag 'drm-next-2018-06-06-1' of git://anongit.freedesktop.org/drm/drm: (1286 commits)
        drm/amdgpu: fix 32-bit build warning
        drm/exynos: fimc: signedness bug in fimc_setup_clocks()
        drm/exynos: scaler: fix static checker warning
        drm/amdgpu: Use dev_info() to report amdkfd is not supported for this ASIC
        drm/amd/display: Remove use of division operator for long longs
        drm/amdgpu: Update GFX info structure to match what vega20 used
        drm/amdgpu/pp: remove duplicate assignment
        drm/sched: add rcu_barrier after entity fini
        drm/amdgpu: move VM BOs on LRU again
        drm/amdgpu: consistenly use VM moved flag
        drm/amdgpu: kmap PDs/PTs in amdgpu_vm_update_directories
        drm/amdgpu: further optimize amdgpu_vm_handle_moved
        drm/amdgpu: cleanup amdgpu_vm_validate_pt_bos v2
        drm/amdgpu: rework VM state machine lock handling v2
        drm/amdgpu: Add runtime VCN PG support
        drm/amdgpu: Enable VCN static PG by default on RV
        drm/amdgpu: Add VCN static PG support on RV
        drm/amdgpu: Enable VCN CG by default on RV
        drm/amdgpu: Add static CG control for VCN on RV
        drm/exynos: Fix default value for zpos plane property
        ...
      135c5504
    • L
      Merge branch 'for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · af6c5d5e
      Linus Torvalds 提交于
      Pull workqueue updates from Tejun Heo:
      
       - make kworkers report the workqueue it is executing or has executed
         most recently in /proc/PID/comm (so they show up in ps/top)
      
       - CONFIG_SMP shuffle to move stuff which isn't necessary for UP builds
         inside CONFIG_SMP.
      
      * 'for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: move function definitions within CONFIG_SMP block
        workqueue: Make sure struct worker is accessible for wq_worker_comm()
        workqueue: Show the latest workqueue name in /proc/PID/{comm,stat,status}
        proc: Consolidate task->comm formatting into proc_task_name()
        workqueue: Set worker->desc to workqueue name by default
        workqueue: Make worker_attach/detach_pool() update worker->pool
        workqueue: Replace pool->attach_mutex with global wq_pool_attach_mutex
      af6c5d5e
    • L
      Merge branch 'for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 9f25a8da
      Linus Torvalds 提交于
      Pull cgroup updates from Tejun Heo:
      
       - For cpustat, cgroup has a percpu hierarchical stat mechanism which
         propagates up the hierarchy lazily.
      
         This contains commits to factor out and generalize the mechanism so
         that it can be used for other cgroup stats too.
      
         The original intention was to update memcg stats to use it but memcg
         went for a different approach, so still the only user is cpustat. The
         factoring out and generalization still make sense and it's likely
         that this can be used for other purposes in the future.
      
       - cgroup uses kernfs_notify() (which uses fsnotify()) to inform user
         space of certain events. A rate limiting mechanism is added.
      
       - Other misc changes.
      
      * 'for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: css_set_lock should nest inside tasklist_lock
        rdmacg: Convert to use match_string() helper
        cgroup: Make cgroup_rstat_updated() ready for root cgroup usage
        cgroup: Add memory barriers to plug cgroup_rstat_updated() race window
        cgroup: Add cgroup_subsys->css_rstat_flush()
        cgroup: Replace cgroup_rstat_mutex with a spinlock
        cgroup: Factor out and expose cgroup_rstat_*() interface functions
        cgroup: Reorganize kernel/cgroup/rstat.c
        cgroup: Distinguish base resource stat implementation from rstat
        cgroup: Rename stat to rstat
        cgroup: Rename kernel/cgroup/stat.c to kernel/cgroup/rstat.c
        cgroup: Limit event generation frequency
        cgroup: Explicitly remove core interface files
      9f25a8da
    • L
      Merge branch 'for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 0bbddb8c
      Linus Torvalds 提交于
      Pull libata updates from Tejun Heo:
      
       - libata has always been limiting the maximum queue depth to 31, with
         one entry set aside mostly for historical reasons. This didn't use to
         make much difference but Jens found out that modern hard drives can
         actually perform measurably better with the extra one queue depth.
         Jens updated libata core so that it can make use of full 32 queue
         depth
      
       - Damien updated command retry logic in error handling so that it
         doesn't unnecessarily retry when upper layer (SCSI) is gonna handle
         them
      
       - A couple misc changes
      
      * 'for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        sata_fsl: use the right type for tag bitshift
        ahci: enable full queue depth of 32
        libata: don't clamp queue depth to ATA_MAX_QUEUE - 1
        libata: add extra internal command
        sata_nv: set host can_queue count appropriately
        libata: remove assumption that ATA_MAX_QUEUE - 1 is the max
        libata: use ata_tag_internal() consistently
        libata: bump ->qc_active to a 64-bit type
        libata: convert core and drivers to ->hw_tag usage
        libata: introduce notion of separate hardware tags
        libata: Fix command retry decision
        libata: Honor RQF_QUIET flag
        libata: Make ata_dev_set_mode() less verbose
        libata: Fix ata_err_string()
        libata: Fix comment typo in ata_eh_analyze_tf()
        sata_nv: don't use block layer bounce buffer
        ata: hpt37x: Convert to use match_string() helper
      0bbddb8c
    • L
      Merge branch 'for-4.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 476d9ff6
      Linus Torvalds 提交于
      Pull libata fixes from Tejun Heo:
       "These two are fixes which missed v4.17.
      
        One is to remove an incorrect power management blacklist entry and the
        other to fix a cdb buffer overrun which has been there for a very long
        time"
      
      * 'for-4.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        libata: Drop SanDisk SD7UB3Q*G1001 NOLPM quirk
        libata: zpodd: small read overflow in eject_tray()
      476d9ff6
    • L
      Merge tag 'tty-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · a22e48cf
      Linus Torvalds 提交于
      Pull tty/serial updates from Greg KH:
       "Here is the big tty/serial driver update for 4.18-rc1.
      
        There's nothing major here, just lots of serial driver updates. Full
        details are in the shortlog, nothing anything specific to call out
        here.
      
        All have been in linux-next for a while with no reported issues"
      
      * tag 'tty-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (55 commits)
        vt: Perform safe console erase only once
        serial: imx: disable UCR4_OREN on shutdown
        serial: imx: drop CTS/RTS handling from shutdown
        tty: fix typo in ASYNCB_FOURPORT comment
        serial: samsung: check DMA engine capabilities before using DMA mode
        tty: Fix data race in tty_insert_flip_string_fixed_flag
        tty: serial: msm_geni_serial: Fix TX infinite loop
        serial: 8250_dw: Fix runtime PM handling
        serial: 8250: omap: Fix idling of clocks for unused uarts
        tty: serial: drop ATH79 specific SoC symbols
        serial: 8250: Add missing rxtrig_bytes on Altera 16550 UART
        serial/aspeed-vuart: fix a couple mod_timer() calls
        serial: sh-sci: Use spin_{try}lock_irqsave instead of open coding version
        serial: 8250_of: Add IO space support
        tty/serial: atmel: use port->name as name in request_irq()
        serial: imx: dma_unmap_sg buffers on shutdown
        serial: imx: cleanup imx_uart_disable_dma()
        tty: serial: qcom_geni_serial: Add early console support
        tty: serial: qcom_geni_serial: Return IRQ_NONE for spurious interrupts
        tty: serial: qcom_geni_serial: Use iowrite32_rep to write to FIFO
        ...
      a22e48cf
    • L
      Merge tag 'driver-core-4.18-rc1' of... · ec064d3c
      Linus Torvalds 提交于
      Merge tag 'driver-core-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core updates from Greg KH:
       "Here is the driver core patchset for 4.18-rc1.
      
        The large chunk of these are firmware core documentation and api
        updates. Nothing major there, just better descriptions for others to
        be able to understand the firmware code better. There's also a user
        for a new firmware api call.
      
        Other than that, there are some minor updates for debugfs, kernfs, and
        the driver core itself.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (23 commits)
        driver core: hold dev's parent lock when needed
        driver-core: return EINVAL error instead of BUG_ON()
        driver core: add __printf verification to device_create_groups_vargs
        mm: memory_hotplug: use put_device() if device_register fail
        base: core: fix typo 'can by' to 'can be'
        debugfs: inode: debugfs_create_dir uses mode permission from parent
        debugfs: Re-use kstrtobool_from_user()
        Documentation: clarify firmware_class provenance and why we can't rename the module
        Documentation: remove stale firmware API reference
        Documentation: fix few typos and clarifications for the firmware loader
        ath10k: re-enable the firmware fallback mechanism for testmode
        ath10k: use firmware_request_nowarn() to load firmware
        firmware: add firmware_request_nowarn() - load firmware without warnings
        firmware_loader: make firmware_fallback_sysfs() print more useful
        firmware_loader: move kconfig FW_LOADER entries to its own file
        firmware_loader: replace ---help--- with help
        firmware_loader: enhance Kconfig documentation over FW_LOADER
        firmware_loader: document firmware_sysfs_fallback()
        firmware: rename fw_sysfs_fallback to firmware_fallback_sysfs()
        firmware: use () to terminate kernel-doc function names
        ...
      ec064d3c
    • L
      Merge tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · abf7dba7
      Linus Torvalds 提交于
      Pull char/misc driver updates from Greg KH:
       "Here is the "big" char and misc driver patches for 4.18-rc1.
      
        It's not a lot of stuff here, but there are some highlights:
      
         - coreboot driver updates
      
         - soundwire driver updates
      
         - android binder updates
      
         - fpga big sync, mostly documentation
      
         - lots of minor driver updates
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (81 commits)
        vmw_balloon: fixing double free when batching mode is off
        MAINTAINERS: Add driver-api/fpga path
        fpga: clarify that unregister functions also free
        documentation: fpga: move fpga-region.txt to driver-api
        documentation: fpga: add bridge document to driver-api
        documentation: fpga: move fpga-mgr.txt to driver-api
        Documentation: fpga: move fpga overview to driver-api
        fpga: region: kernel-doc fixes
        fpga: bridge: kernel-doc fixes
        fpga: mgr: kernel-doc fixes
        fpga: use SPDX
        fpga: region: change api, add fpga_region_create/free
        fpga: bridge: change api, don't use drvdata
        fpga: manager: change api, don't use drvdata
        fpga: region: don't use drvdata in common fpga code
        Drivers: hv: vmbus: Removed an unnecessary cast from void *
        ver_linux: Drop redundant calls to system() to test if file is readable
        ver_linux: Move stderr redirection from function parameter to function body
        misc: IBM Virtual Management Channel Driver (VMC)
        rpmsg: Correct support for MODULE_DEVICE_TABLE()
        ...
      abf7dba7
    • L
      Merge tag 'usb-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 07c4dd34
      Linus Torvalds 提交于
      Pull USB and PHY updates from Greg KH:
       "Here is the big USB pull request for 4.18-rc1.
      
        Lots of stuff here, the highlights are:
      
         - phy driver updates and new additions
      
         - usual set of xhci driver updates
      
         - normal set of musb updates
      
         - gadget driver updates and new controllers
      
         - typec work, it's getting closer to getting fully out of the staging
           portion of the tree.
      
         - lots of minor cleanups and bugfixes.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (263 commits)
        Revert "xhci: Reset Renesas uPD72020x USB controller for 32-bit DMA issue"
        xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers
        xhci: Allow more than 32 quirks
        usb: xhci: force all memory allocations to node
        selftests: add test for USB over IP driver
        USB: typec: fsusb302: no need to check return value of debugfs_create_dir()
        USB: gadget: udc: s3c2410_udc: no need to check return value of debugfs_create functions
        USB: gadget: udc: renesas_usb3: no need to check return value of debugfs_create functions
        USB: gadget: udc: pxa27x_udc: no need to check return value of debugfs_create functions
        USB: gadget: udc: gr_udc: no need to check return value of debugfs_create functions
        USB: gadget: udc: bcm63xx_udc: no need to check return value of debugfs_create functions
        USB: udc: atmel_usba_udc: no need to check return value of debugfs_create functions
        USB: dwc3: no need to check return value of debugfs_create functions
        USB: dwc2: no need to check return value of debugfs_create functions
        USB: core: no need to check return value of debugfs_create functions
        USB: chipidea: no need to check return value of debugfs_create functions
        USB: ehci-hcd: no need to check return value of debugfs_create functions
        USB: fhci-hcd: no need to check return value of debugfs_create functions
        USB: fotg210-hcd: no need to check return value of debugfs_create functions
        USB: imx21-hcd: no need to check return value of debugfs_create functions
        ...
      07c4dd34
    • L
      Merge tag 'mmc-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · f60342fa
      Linus Torvalds 提交于
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Decrease polling rate for erase/trim/discard
         - Allow non-sleeping GPIOs for card detect
         - Improve mmc block removal path
         - Enable support for mmc_sw_reset() for SDIO cards
         - Add mmc_sw_reset() to allow users to do a soft reset of the card
         - Allow power delay to be tunable via DT
         - Allow card detect debounce delay to be tunable via DT
         - Enable new quirk to limit clock rate for Marvell 8887 chip
         - Don't show eMMC RPMB and BOOT areas in /proc/partitions
         - Add capability to avoid 3.3V signaling for fragile HWs
      
        MMC host:
         - Improve/fixup support for handle highmem pages
         - Remove depends on HAS_DMA in case of platform dependency
         - mvsdio: Enable support for erase/trim/discard
         - rtsx_usb: Enable support for erase/trim/discard
         - renesas_sdhi: Fix WP logic regressions
         - renesas_sdhi: Add r8a77965 support
         - renesas_sdhi: Add R8A77980 to whitelist
         - meson: Add optional support for device reset
         - meson: Add support for the Meson-AXG platform
         - dw_mmc: Add new driver for BlueField DW variant
         - mediatek: Add support for 64G DRAM DMA
         - sunxi: Deploy runtime PM support
         - jz4740: Add support for JZ4780
         - jz4740: Enable support for DT based platforms
         - sdhci: Various improvement to timeout handling
         - sdhci: Disable support for HS200/HS400/UHS when no 1.8V support
         - sdhci-omap: Add support for controller in k2g SoC
         - sdhci-omap: Add workarounds for a couple of Erratas
         - sdhci-omap: Enable support for generic sdhci DT properties
         - sdhci-cadence: Re-send tune request to deal with errata
         - sdhci-pci: Fix 3.3V voltage switch for some BYT-based Intel controllers
         - sdhci-pci: Avoid 3.3V signaling on some NI 904x
         - sdhci-esdhc-imx: Use watermark levels for PIO access
         - sdhci-msm: Improve card detection handling
         - sdhci-msm: Add support voltage pad switching"
      
      * tag 'mmc-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (104 commits)
        mmc: renesas_sdhi: really fix WP logic regressions
        mmc: mvsdio: Enable MMC_CAP_ERASE
        mmc: mvsdio: Respect card busy time out from mmc core
        mmc: sdhci-msm: Remove NO_CARD_NO_RESET quirk
        mmc: sunxi: Use ifdef rather than __maybe_unused
        mmc: mxmmc: Use ifdef rather than __maybe_unused
        mmc: mxmmc: include linux/highmem.h
        mmc: sunxi: mark PM functions as __maybe_unused
        mmc: Throttle calls to MMC_SEND_STATUS during mmc_do_erase()
        mmc: au1xmmc: handle highmem pages
        mmc: Allow non-sleeping GPIO cd
        mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails
        mmc: sd: Define name for default speed dtr
        mmc: core: Move calls to ->prepare_hs400_tuning() closer to mmc code
        mmc: sdhci-xenon: use match_string() helper
        mmc: wbsd: handle highmem pages
        mmc: ushc: handle highmem pages
        mmc: mxcmmc: handle highmem pages
        mmc: atmel-mci: use sg_copy_{from,to}_buffer
        mmc: android-goldfish: use sg_copy_{from,to}_buffer
        ...
      f60342fa
    • L
      Merge tag 'leds_for_4.18-rc1' of... · 5231804c
      Linus Torvalds 提交于
      Merge tag 'leds_for_4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
      
      Pull LED updates from Jacek Anaszewski:
       "This was quite a fruitful cycle, taking into account usual traffic on
        linux-leds list, as we managed to merge three new LED class drivers.
      
        New LED class drivers with related DT bindings:
         - add LED driver for CR0014114 board
         - add Spreadtrum SC27xx breathing light controller driver
         - introduce the lm3601x LED driver
      
        LED class fix:
         - ensure workqueue is initialized before setting brightness
      
        Improvements and fixes to existing LED class drivers:
         - fix return value check in sc27xx_led_probe()
         - use sysfs_match_string() helper in wm831x_status_src_store()"
      
      * tag 'leds_for_4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: class: ensure workqueue is initialized before setting brightness
        leds: lm3601x: Introduce the lm3601x LED driver
        dt: bindings: lm3601x: Introduce the lm3601x driver
        leds: sc27xx: Fix return value check in sc27xx_led_probe()
        leds: Add Spreadtrum SC27xx breathing light controller driver
        dt-bindings: leds: Add SC27xx breathing light controller documentation
        leds: wm831x-status: Use sysfs_match_string() helper
        leds: add LED driver for CR0014114 board
        dt-bindings: Add vendor prefix and docs for CR0014114
      5231804c
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 2158091d
      Linus Torvalds 提交于
      Pull input updates from Dmitry Torokhov:
      
       - a new driver to ChipOne icn8505 based touchscreens
      
       - on certain systems with Elan touch controllers they will be switched
         away form PS/2 emulation and over to native SMbus mode
      
       - assorted driver fixups and improvements
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (24 commits)
        Input: elan_i2c - add ELAN0612 (Lenovo v330 14IKB) ACPI ID
        Input: goodix - add new ACPI id for GPD Win 2 touch screen
        Input: xpad - add GPD Win 2 Controller USB IDs
        Input: ti_am335x_tsc - prevent system suspend when TSC is in use
        Input: ti_am335x_tsc - ack pending IRQs at probe and before suspend
        Input: cros_ec_keyb - mark cros_ec_keyb driver as wake enabled device.
        Input: mk712 - update documentation web link
        Input: atmel_mxt_ts - fix reset-gpio for level based irqs
        Input: atmel_mxt_ts - require device properties present when probing
        Input: psmouse-smbus - allow to control psmouse_deactivate
        Input: elantech - detect new ICs and setup Host Notify for them
        Input: elantech - add support for SMBus devices
        Input: elantech - query the resolution in query_info
        Input: elantech - split device info into a separate structure
        Input: elan_i2c - add trackstick report
        Input: usbtouchscreen - add sysfs attribute for 3M MTouch firmware rev
        Input: ati_remote2 - fix typo 'can by' to 'can be'
        Input: replace hard coded string with __func__ in pr_err()
        Input: add support for ChipOne icn8505 based touchscreens
        Input: gamecon - avoid using __set_bit() for capabilities
        ...
      2158091d
    • L
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 3e1a29b3
      Linus Torvalds 提交于
      Pull crypto updates from Herbert Xu:
       "API:
      
         - Decryption test vectors are now automatically generated from
           encryption test vectors.
      
        Algorithms:
      
         - Fix unaligned access issues in crc32/crc32c.
      
         - Add zstd compression algorithm.
      
         - Add AEGIS.
      
         - Add MORUS.
      
        Drivers:
      
         - Add accelerated AEGIS/MORUS on x86.
      
         - Add accelerated SM4 on arm64.
      
         - Removed x86 assembly salsa implementation as it is slower than C.
      
         - Add authenc(hmac(sha*), cbc(aes)) support in inside-secure.
      
         - Add ctr(aes) support in crypto4xx.
      
         - Add hardware key support in ccree.
      
         - Add support for new Centaur CPU in via-rng"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (112 commits)
        crypto: chtls - free beyond end rspq_skb_cache
        crypto: chtls - kbuild warnings
        crypto: chtls - dereference null variable
        crypto: chtls - wait for memory sendmsg, sendpage
        crypto: chtls - key len correction
        crypto: salsa20 - Revert "crypto: salsa20 - export generic helpers"
        crypto: x86/salsa20 - remove x86 salsa20 implementations
        crypto: ccp - Add GET_ID SEV command
        crypto: ccp - Add DOWNLOAD_FIRMWARE SEV command
        crypto: qat - Add MODULE_FIRMWARE for all qat drivers
        crypto: ccree - silence debug prints
        crypto: ccree - better clock handling
        crypto: ccree - correct host regs offset
        crypto: chelsio - Remove separate buffer used for DMA map B0 block in CCM
        crypt: chelsio - Send IV as Immediate for cipher algo
        crypto: chelsio - Return -ENOSPC for transient busy indication.
        crypto: caam/qi - fix warning in init_cgr()
        crypto: caam - fix rfc4543 descriptors
        crypto: caam - fix MC firmware detection
        crypto: clarify licensing of OpenSSL asm code
        ...
      3e1a29b3
    • L
      Merge tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt · fd59ccc5
      Linus Torvalds 提交于
      Pull fscrypt updates from Ted Ts'o:
       "Add bunch of cleanups, and add support for the Speck128/256
        algorithms.
      
        Yes, Speck is contrversial, but the intention is to use them only for
        the lowest end Android devices, where the alternative *really* is no
        encryption at all for data stored at rest"
      
      * tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt:
        fscrypt: log the crypto algorithm implementations
        fscrypt: add Speck128/256 support
        fscrypt: only derive the needed portion of the key
        fscrypt: separate key lookup from key derivation
        fscrypt: use a common logging function
        fscrypt: remove internal key size constants
        fscrypt: remove unnecessary check for non-logon key type
        fscrypt: make fscrypt_operations.max_namelen an integer
        fscrypt: drop empty name check from fname_decrypt()
        fscrypt: drop max_namelen check from fname_decrypt()
        fscrypt: don't special-case EOPNOTSUPP from fscrypt_get_encryption_info()
        fscrypt: don't clear flags on crypto transform
        fscrypt: remove stale comment from fscrypt_d_revalidate()
        fscrypt: remove error messages for skcipher_request_alloc() failure
        fscrypt: remove unnecessary NULL check when allocating skcipher
        fscrypt: clean up after fscrypt_prepare_lookup() conversions
        fs, fscrypt: only define ->s_cop when FS_ENCRYPTION is enabled
        fscrypt: use unbound workqueue for decryption
      fd59ccc5
    • L
      Merge tag 'xfs-4.18-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 6567af78
      Linus Torvalds 提交于
      Pull xfs updates from Darrick Wong:
       "New features this cycle include the ability to relabel mounted
        filesystems, support for fallocated swapfiles, and using FUA for pure
        data O_DSYNC directio writes. With this cycle we begin to integrate
        online filesystem repair and refactor the growfs code in preparation
        for eventual subvolume support, though the road ahead for both
        features is quite long.
      
        There are also numerous refactorings of the iomap code to remove
        unnecessary log overhead, to disentangle some of the quota code, and
        to prepare for buffer head removal in a future upstream kernel.
      
        Metadata validation continues to improve, both in the hot path
        veifiers and the online filesystem check code. I anticipate sending a
        second pull request in a few days with more metadata validation
        improvements.
      
        This series has been run through a full xfstests run over the weekend
        and through a quick xfstests run against this morning's master, with
        no major failures reported.
      
        Summary:
      
         - Strengthen inode number and structure validation when allocating
           inodes.
      
         - Reduce pointless buffer allocations during cache miss
      
         - Use FUA for pure data O_DSYNC directio writes
      
         - Various iomap refactorings
      
         - Strengthen quota metadata verification to avoid unfixable broken
           quota
      
         - Make AGFL block freeing a deferred operation to avoid blowing out
           transaction reservations when running complex operations
      
         - Get rid of the log item descriptors to reduce log overhead
      
         - Fix various reflink bugs where inodes were double-joined to
           transactions
      
         - Don't issue discards when trimming unwritten extents
      
         - Refactor incore dquot initialization and retrieval interfaces
      
         - Fix some locking problmes in the quota scrub code
      
         - Strengthen btree structure checks in scrub code
      
         - Rewrite swapfile activation to use iomap and support unwritten
           extents
      
         - Make scrub exit to userspace sooner when corruptions or
           cross-referencing problems are found
      
         - Make scrub invoke the data fork scrubber directly on metadata
           inodes
      
         - Don't do background reclamation of post-eof and cow blocks when the
           fs is suspended
      
         - Fix secondary superblock buffer lifespan hinting
      
         - Refactor growfs to use table-dispatched functions instead of long
           stringy functions
      
         - Move growfs code to libxfs
      
         - Implement online fs label getting and setting
      
         - Introduce online filesystem repair (in a very limited capacity)
      
         - Fix unit conversion problems in the realtime freemap iteration
           functions
      
         - Various refactorings and cleanups in preparation to remove buffer
           heads in a future release
      
         - Reimplement the old bmap call with iomap
      
         - Remove direct buffer head accesses from seek hole/data
      
         - Various bug fixes"
      
      * tag 'xfs-4.18-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (121 commits)
        fs: use ->is_partially_uptodate in page_cache_seek_hole_data
        fs: remove the buffer_unwritten check in page_seek_hole_data
        fs: move page_cache_seek_hole_data to iomap.c
        xfs: use iomap_bmap
        iomap: add an iomap-based bmap implementation
        iomap: add a iomap_sector helper
        iomap: use __bio_add_page in iomap_dio_zero
        iomap: move IOMAP_F_BOUNDARY to gfs2
        iomap: fix the comment describing IOMAP_NOWAIT
        iomap: inline data should be an iomap type, not a flag
        mm: split ->readpages calls to avoid non-contiguous pages lists
        mm: return an unsigned int from __do_page_cache_readahead
        mm: give the 'ret' variable a better name __do_page_cache_readahead
        block: add a lower-level bio_add_page interface
        xfs: fix error handling in xfs_refcount_insert()
        xfs: fix xfs_rtalloc_rec units
        xfs: strengthen rtalloc query range checks
        xfs: xfs_rtbuf_get should check the bmapi_read results
        xfs: xfs_rtword_t should be unsigned, not signed
        dax: change bdev_dax_supported() to support boolean returns
        ...
      6567af78
    • Y
      tracing: Use match_string() instead of open coding it in trace_set_options() · 591a033d
      Yisheng Xie 提交于
      match_string() returns the index of an array for a matching string,
      which can be used to simplify the code.
      
      Link: http://lkml.kernel.org/r/1526546163-4609-1-git-send-email-xieyisheng1@huawei.comReviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: NYisheng Xie <xieyisheng1@huawei.com>
      Signed-off-by: NSteven Rostedt (VMware) <rostedt@goodmis.org>
      591a033d
    • L
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 1434763c
      Linus Torvalds 提交于
      Pull ext4 updates from Ted Ts'o:
       "A lot of cleanups and bug fixes, especially dealing with corrupted
        file systems"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (23 commits)
        ext4: fix fencepost error in check for inode count overflow during resize
        ext4: correctly handle a zero-length xattr with a non-zero e_value_offs
        ext4: bubble errors from ext4_find_inline_data_nolock() up to ext4_iget()
        ext4: do not allow external inodes for inline data
        ext4: report delalloc reserve as non-free in statfs for project quota
        ext4: remove NULL check before calling kmem_cache_destroy()
        jbd2: remove NULL check before calling kmem_cache_destroy()
        jbd2: remove bunch of empty lines with jbd2 debug
        ext4: handle errors on ext4_commit_super
        ext4: do not update s_last_mounted of a frozen fs
        ext4: factor out helper ext4_sample_last_mounted()
        vfs: add the sb_start_intwrite_trylock() helper
        ext4: update mtime in ext4_punch_hole even if no blocks are released
        ext4: add verifier check for symlink with append/immutable flags
        fs: ext4: add new return type vm_fault_t
        ext4: fix hole length detection in ext4_ind_map_blocks()
        ext4: mark block bitmap corrupted when found
        ext4: mark inode bitmap corrupted when found
        ext4: add new ext4_mark_group_bitmap_corrupted() helper
        ext4: fix wrong return value in ext4_read_inode_bitmap()
        ...
      1434763c
    • K
      device: Use overflow helpers for devm_kmalloc() · 2509b561
      Kees Cook 提交于
      Use the overflow helpers both in existing multiplication-using inlines as
      well as the addition-overflow case in the core allocation routine.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      2509b561
    • K
      mm: Use overflow helpers in kvmalloc() · 3b3b1a29
      Kees Cook 提交于
      Instead of open-coded multiplication and bounds checking, use the new
      overflow helper. Additionally prepare for vmalloc() users to add
      array_size()-family helpers in the future.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      3b3b1a29
    • K
      mm: Use overflow helpers in kmalloc_array*() · 49b7f898
      Kees Cook 提交于
      Instead of open-coded multiplication and bounds checking, use the new
      overflow helper.
      Suggested-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: NKees Cook <keescook@chromium.org>
      49b7f898
    • K
      test_overflow: Add memory allocation overflow tests · ca90800a
      Kees Cook 提交于
      Make sure that the memory allocators are behaving as expected in the face
      of overflows of multiplied arguments or when using the array_size()-family
      helpers.
      
      Example output of new tests (with the expected __alloc_pages_slowpath
      and vmalloc warnings about refusing giant allocations removed):
      
      [   93.062076] test_overflow: kmalloc detected saturation
      [   93.062988] test_overflow: kmalloc_node detected saturation
      [   93.063818] test_overflow: kzalloc detected saturation
      [   93.064539] test_overflow: kzalloc_node detected saturation
      [   93.120386] test_overflow: kvmalloc detected saturation
      [   93.143458] test_overflow: kvmalloc_node detected saturation
      [   93.166861] test_overflow: kvzalloc detected saturation
      [   93.189924] test_overflow: kvzalloc_node detected saturation
      [   93.221671] test_overflow: vmalloc detected saturation
      [   93.246326] test_overflow: vmalloc_node detected saturation
      [   93.270260] test_overflow: vzalloc detected saturation
      [   93.293824] test_overflow: vzalloc_node detected saturation
      [   93.294597] test_overflow: devm_kmalloc detected saturation
      [   93.295383] test_overflow: devm_kzalloc detected saturation
      [   93.296217] test_overflow: all tests passed
      Signed-off-by: NKees Cook <keescook@chromium.org>
      ca90800a
    • K
      overflow.h: Add allocation size calculation helpers · 610b15c5
      Kees Cook 提交于
      In preparation for replacing unchecked overflows for memory allocations,
      this creates helpers for the 3 most common calculations:
      
      array_size(a, b): 2-dimensional array
      array3_size(a, b, c): 3-dimensional array
      struct_size(ptr, member, n): struct followed by n-many trailing members
      
      Each of these return SIZE_MAX on overflow instead of wrapping around.
      
      (Additionally renames a variable named "array_size" to avoid future
      collision.)
      Co-developed-by: NMatthew Wilcox <mawilcox@microsoft.com>
      Signed-off-by: NKees Cook <keescook@chromium.org>
      610b15c5
    • K
      test_overflow: Report test failures · 8fee81aa
      Kees Cook 提交于
      This adjusts the overflow test to report failures, and prepares to
      add allocation tests.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      8fee81aa
    • R
      test_overflow: macrofy some more, do more tests for free · 6d334432
      Rasmus Villemoes 提交于
      Obviously a+b==b+a and a*b==b*a, but the implementation of the fallback
      checks are not entirely symmetric in how they treat a and b. So we might
      as well check the (b,a,r,of) tuple as well as the (a,b,r,of) one for +
      and *. Rather than more copy-paste, factor out the common part to
      check_one_op.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: NKees Cook <keescook@chromium.org>
      6d334432