17 Oct, 2019

1 commit

  • It has been suggested several times to extend vsnprintf() to be able
    to convert the numeric value of ENOSPC to print "ENOSPC". This
    implements that as a %p extension: With %pe, one can do

    if (IS_ERR(foo)) {
    pr_err("Sorry, can't do that: %pe\n", foo);
    return PTR_ERR(foo);
    }

    instead of what is seen in quite a few places in the kernel:

    if (IS_ERR(foo)) {
    pr_err("Sorry, can't do that: %ld\n", PTR_ERR(foo));
    return PTR_ERR(foo);
    }

    If the value passed to %pe is an ERR_PTR, but the library function
    errname() added here doesn't know about the value, the value is simply
    printed in decimal. If the value passed to %pe is not an ERR_PTR, we
    treat it as an ordinary %p and thus print the hashed value (passing
    non-ERR_PTR values to %pe indicates a bug in the caller, but we can't
    do much about that).

    With my embedded hat on, and because it's not very invasive to do,
    I've made it possible to remove this. The errname() function and
    associated lookup tables take up about 3K. For most, that's probably
    quite acceptable and a price worth paying for more readable
    dmesg (once this starts getting used), while for those that disable
    printk() it's of very little use - I don't see a
    procfs/sysfs/seq_printf() file reasonably making use of this - and
    they clearly want to squeeze vmlinux as much as possible. Hence the
    default y if PRINTK.

    The symbols to include have been found by massaging the output of

    find arch include -iname 'errno*.h' | xargs grep -E 'define\s*E'

    In the cases where some common aliasing exists
    (e.g. EAGAIN=EWOULDBLOCK on all platforms, EDEADLOCK=EDEADLK on most),
    I've moved the more popular one (in terms of 'git grep -w Efoo | wc)
    to the bottom so that one takes precedence.

    Link: http://lkml.kernel.org/r/20191015190706.15989-1-linux@rasmusvillemoes.dk
    To: "Jonathan Corbet"
    To: linux-kernel@vger.kernel.org
    Cc: "Andy Shevchenko"
    Cc: "Andrew Morton"
    Cc: "Joe Perches"
    Cc: linux-doc@vger.kernel.org
    Signed-off-by: Rasmus Villemoes
    Acked-by: Uwe Kleine-König
    Reviewed-by: Petr Mladek
    [andy.shevchenko@gmail.com: use abs()]
    Acked-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Rasmus Villemoes
     

16 Sep, 2019

1 commit


06 Sep, 2019

1 commit

  • Commit 5aa068ea4082 ("printk: remove games with previous record flags")
    abolished the practice of setting the log flag to 'c' for the first
    continuation line and '+' for subsequent lines. Now all continuation
    lines are flagged with 'c' and '+' is never used.

    Update the 'dev-kmsg' documentation to remove the reference to the
    obsolete '+' flag. In addition, state explicitly that only 8 bits of the
    syslog prefix are used for the facility number when writing to
    /dev/kmsg.

    Link: http://lkml.kernel.org/r/0102016cf1b26630-8e9b337b-da49-43c6-b028-4250c2fac3ef-000000@eu-west-1.amazonses.com
    Cc: Steven Rostedt
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: James Byrne
    Reviewed-by: Sergey Senozhatsky
    Signed-off-by: Petr Mladek

    James Byrne
     

16 Aug, 2019

1 commit

  • strncmp(str, const, len) is error-prone because len is easy to have typo.
    An example is the hard-coded len has counting error or sizeof(const)
    forgets - 1.

    So we prefer using newly introduced str_has_prefix() to substitute
    such strncmp() to make code better.

    Link: http://lkml.kernel.org/r/20190809071034.17279-1-hslester96@gmail.com
    Cc: "Steven Rostedt"
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Chuhong Yuan
    Reviewed-by: Sergey Senozhatsky
    [pmladek@suse.com: Slightly updated and reformatted the commit message.]
    Signed-off-by: Petr Mladek

    Chuhong Yuan
     

15 Aug, 2019

3 commits

  • Signed-off-by: Petr Mladek

    Petr Mladek
     
  • This add some additional test cases of null/invalid pointer dereference
    for dentry and file (%pd and %pD)

    Link: http://lkml.kernel.org/r/20190809012457.56685-2-justin.he@arm.com
    To: Geert Uytterhoeven
    To: Sergey Senozhatsky
    To: Thomas Gleixner
    To: Andy Shevchenko
    To: Petr Mladek
    To: linux-kernel@vger.kernel.org
    Cc: Kees Cook
    Cc: "Steven Rostedt (VMware)"
    Cc: Shuah Khan
    Cc: "Tobin C. Harding"
    Signed-off-by: Jia He
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Sergey Senozhatsky
    Signed-off-by: Petr Mladek

    Jia He
     
  • Commit 3e5903eb9cff ("vsprintf: Prevent crash when dereferencing invalid
    pointers") prevents most crash except for %pD.
    There is an additional pointer dereferencing before dentry_name.

    At least, vma->file can be NULL and be passed to printk %pD in
    print_bad_pte, which can cause crash.

    This patch fixes it with introducing a new file_dentry_name.

    Link: http://lkml.kernel.org/r/20190809012457.56685-1-justin.he@arm.com
    Fixes: 3e5903eb9cff ("vsprintf: Prevent crash when dereferencing invalid pointers")
    To: Geert Uytterhoeven
    To: Thomas Gleixner
    To: Andy Shevchenko
    To: linux-kernel@vger.kernel.org
    Cc: Kees Cook
    Cc: "Steven Rostedt (VMware)"
    Cc: Shuah Khan
    Cc: "Tobin C. Harding"
    Signed-off-by: Jia He
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Sergey Senozhatsky
    Signed-off-by: Petr Mladek

    Jia He
     

12 Jul, 2019

1 commit

  • kmsg_dump_get_buffer() is supposed to select all the youngest log
    messages which fit into the provided buffer. It determines the correct
    start index by using msg_print_text() with a NULL buffer to calculate
    the size of each entry. However, when performing the actual writes,
    msg_print_text() only writes the entry to the buffer if the written len
    is lesser than the size of the buffer. So if the lengths of the
    selected youngest log messages happen to precisely fill up the provided
    buffer, the last log message is not included.

    We don't want to modify msg_print_text() to fill up the buffer and start
    returning a length which is equal to the size of the buffer, since
    callers of its other users, such as kmsg_dump_get_line(), depend upon
    the current behaviour.

    Instead, fix kmsg_dump_get_buffer() to compensate for this.

    For example, with the following two final prints:

    [ 6.427502] AAAAAAAAAAAAA
    [ 6.427769] BBBBBBBB12345

    A dump of a 64-byte buffer filled by kmsg_dump_get_buffer(), before this
    patch:

    00000000: 3c 30 3e 5b 20 20 20 20 36 2e 35 32 32 31 39 37 [ 6.522197
    00000010: 5d 20 41 41 41 41 41 41 41 41 41 41 41 41 41 0a ] AAAAAAAAAAAAA.
    00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    After this patch:

    00000000: 3c 30 3e 5b 20 20 20 20 36 2e 34 35 36 36 37 38 [ 6.456678
    00000010: 5d 20 42 42 42 42 42 42 42 42 31 32 33 34 35 0a ] BBBBBBBB12345.
    00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    Link: http://lkml.kernel.org/r/20190711142937.4083-1-vincent.whitchurch@axis.com
    Fixes: e2ae715d66bf4bec ("kmsg - kmsg_dump() use iterator to receive log buffer content")
    To: rostedt@goodmis.org
    Cc: linux-kernel@vger.kernel.org
    Cc: # v3.5+
    Signed-off-by: Vincent Whitchurch
    Reviewed-by: Sergey Senozhatsky
    Signed-off-by: Petr Mladek

    Vincent Whitchurch
     

10 Jul, 2019

21 commits

  • Pull printk updates from Petr Mladek:

    - distinguish different legacy clocks again

    - small clean up

    * tag 'printk-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
    lib/vsprintf: Reinstate printing of legacy clock IDs
    vsprintf: fix data type of variable in string_nocheck()

    Linus Torvalds
     
  • Pull capabilities update from James Morris:
    "Minor fixes for capabilities:

    - Update the commoncap.c code to utilize XATTR_SECURITY_PREFIX_LEN,
    from Carmeli tamir.

    - Make the capability hooks static, from Yue Haibing"

    * 'next-lsm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    security/commoncap: Use xattr security prefix len
    security: Make capability_hooks static

    Linus Torvalds
     
  • Pull parisc updates from Helge Deller:
    "Dynamic ftrace support by Sven Schnelle and a header guard fix by
    Denis Efremov"

    * 'parisc-5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: asm: psw.h: missing header guard
    parisc: add dynamic ftrace
    compiler.h: add CC_USING_PATCHABLE_FUNCTION_ENTRY
    parisc: use pr_debug() in kernel/module.c
    parisc: add WARN_ON() to clear_fixmap
    parisc: add spinlock to patch function
    parisc: add support for patching multiple words

    Linus Torvalds
     
  • Pull x865 kdump updates from Thomas Gleixner:
    "Yet more kexec/kdump updates:

    - Properly support kexec when AMD's memory encryption (SME) is
    enabled

    - Pass reserved e820 ranges to the kexec kernel so both PCI and SME
    can work"

    * 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    fs/proc/vmcore: Enable dumping of encrypted memory when SEV was active
    x86/kexec: Set the C-bit in the identity map page table when SEV is active
    x86/kexec: Do not map kexec area as decrypted when SEV is active
    x86/crash: Add e820 reserved ranges to kdump kernel's e820 table
    x86/mm: Rework ioremap resource mapping determination
    x86/e820, ioport: Add a new I/O resource descriptor IORES_DESC_RESERVED
    x86/mm: Create a workarea in the kernel for SME early encryption
    x86/mm: Identify the end of the kernel area to be reserved

    Linus Torvalds
     
  • Pull x86 boot updates from Thomas Gleixner:
    "Assorted updates to kexec/kdump:

    - Proper kexec support for 4/5-level paging and jumping from a
    5-level to a 4-level paging kernel.

    - Make the EFI support for kexec/kdump more robust

    - Enforce that the GDT is properly aligned instead of getting the
    alignment by chance"

    * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/kdump/64: Restrict kdump kernel reservation to
    x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernels
    x86/kexec: Add the EFI system tables and ACPI tables to the ident map

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "The main changes in this cycle on the kernel side were:

    - CPU PMU and uncore driver updates to Intel Snow Ridge, IceLake,
    KabyLake, AmberLake and WhiskeyLake CPUs.

    - Rework the MSR probing infrastructure to make it more robust, make
    it work better on virtualized systems and to better expose it on
    sysfs.

    - Rework PMU attributes group support based on the feedback from
    Greg. The core sysfs patch that adds sysfs_update_groups() was
    acked by Greg.

    There's a lot of perf tooling changes as well, all around the place:

    - vendor updates to Intel, cs-etm (ARM), ARM64, s390,

    - various enhancements to Intel PT tooling support:
    - Improve CBR (Core to Bus Ratio) packets support.
    - Export power and ptwrite events to sqlite and postgresql.
    - Add support for decoding PEBS via PT packets.
    - Add support for samples to contain IPC ratio, collecting cycles
    information from CYC packets, showing the IPC info periodically
    - Allow using time ranges

    - lots of updates to perf pmu, perf stat, perf trace, eBPF support,
    perf record, perf diff, etc. - please see the shortlog and Git log
    for details"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (252 commits)
    tools arch x86: Sync asm/cpufeatures.h with the with the kernel
    tools build: Check if gettid() is available before providing helper
    perf jvmti: Address gcc string overflow warning for strncpy()
    perf python: Remove -fstack-protector-strong if clang doesn't have it
    perf annotate TUI browser: Do not use member from variable within its own initialization
    perf tests: Fix record+probe_libc_inet_pton.sh for powerpc64
    perf evsel: Do not rely on errno values for precise_ip fallback
    perf thread: Allow references to thread objects after machine__exit()
    perf header: Assign proper ff->ph in perf_event__synthesize_features()
    tools arch kvm: Sync kvm headers with the kernel sources
    perf script: Allow specifying the files to process guest samples
    perf tools metric: Don't include duration_time in group
    perf list: Avoid extra : for --raw metrics
    perf vendor events intel: Metric fixes for SKX/CLX
    perf tools: Fix typos / broken sentences
    perf jevents: Add support for Hisi hip08 L3C PMU aliasing
    perf jevents: Add support for Hisi hip08 HHA PMU aliasing
    perf jevents: Add support for Hisi hip08 DDRC PMU aliasing
    perf pmu: Support more complex PMU event aliasing
    perf diff: Documentation -c cycles option
    ...

    Linus Torvalds
     
  • Pull libata updates from Jens Axboe:
    "These are the changes that are reviewed, tested, and queued up for
    this merge window. This contains:

    - Removal of redundant memset after dmam_alloc_coherent (Fuqian)

    - Expand blacklist check for ST1000LM024, making it independent of
    firmware version (Hans)

    - Request sense fix (Tejun)

    - ahci_sunxi FIFO fix (Uenal)"

    * tag 'for-5.3/libata-20190708' of git://git.kernel.dk/linux-block:
    drivers: ata: ahci_sunxi: Increased SATA/AHCI DMA TX/RX FIFOs
    libata: Drop firmware version check from the ST1000LM024 quirk
    ata: sata_sil24: Remove call to memset after dmam_alloc_coherent
    ata:sata_qstor: Remove call to memset after dmam_alloc_coherent
    ata: sata_nv: Remove call to memset after dmam_alloc_coherent
    ata: pdc_adma: Remove call to memset after dmam_alloc_coherent
    ata: libahci: Remove call to memset after dmam_alloc_coherent
    ata: acard-ahci: Remove call to memset after dmam_alloc_coherent
    libata: don't request sense data on !ZAC ATA devices

    Linus Torvalds
     
  • Pull block updates from Jens Axboe:
    "This is the main block updates for 5.3. Nothing earth shattering or
    major in here, just fixes, additions, and improvements all over the
    map. This contains:

    - Series of documentation fixes (Bart)

    - Optimization of the blk-mq ctx get/put (Bart)

    - null_blk removal race condition fix (Bob)

    - req/bio_op() cleanups (Chaitanya)

    - Series cleaning up the segment accounting, and request/bio mapping
    (Christoph)

    - Series cleaning up the page getting/putting for bios (Christoph)

    - block cgroup cleanups and moving it to where it is used (Christoph)

    - block cgroup fixes (Tejun)

    - Series of fixes and improvements to bcache, most notably a write
    deadlock fix (Coly)

    - blk-iolatency STS_AGAIN and accounting fixes (Dennis)

    - Series of improvements and fixes to BFQ (Douglas, Paolo)

    - debugfs_create() return value check removal for drbd (Greg)

    - Use struct_size(), where appropriate (Gustavo)

    - Two lighnvm fixes (Heiner, Geert)

    - MD fixes, including a read balance and corruption fix (Guoqing,
    Marcos, Xiao, Yufen)

    - block opal shadow mbr additions (Jonas, Revanth)

    - sbitmap compare-and-exhange improvemnts (Pavel)

    - Fix for potential bio->bi_size overflow (Ming)

    - NVMe pull requests:
    - improved PCIe suspent support (Keith Busch)
    - error injection support for the admin queue (Akinobu Mita)
    - Fibre Channel discovery improvements (James Smart)
    - tracing improvements including nvmetc tracing support (Minwoo Im)
    - misc fixes and cleanups (Anton Eidelman, Minwoo Im, Chaitanya
    Kulkarni)"

    - Various little fixes and improvements to drivers and core"

    * tag 'for-5.3/block-20190708' of git://git.kernel.dk/linux-block: (153 commits)
    blk-iolatency: fix STS_AGAIN handling
    block: nr_phys_segments needs to be zero for REQ_OP_WRITE_ZEROES
    blk-mq: simplify blk_mq_make_request()
    blk-mq: remove blk_mq_put_ctx()
    sbitmap: Replace cmpxchg with xchg
    block: fix .bi_size overflow
    block: sed-opal: check size of shadow mbr
    block: sed-opal: ioctl for writing to shadow mbr
    block: sed-opal: add ioctl for done-mark of shadow mbr
    block: never take page references for ITER_BVEC
    direct-io: use bio_release_pages in dio_bio_complete
    block_dev: use bio_release_pages in bio_unmap_user
    block_dev: use bio_release_pages in blkdev_bio_end_io
    iomap: use bio_release_pages in iomap_dio_bio_end_io
    block: use bio_release_pages in bio_map_user_iov
    block: use bio_release_pages in bio_unmap_user
    block: optionally mark pages dirty in bio_release_pages
    block: move the BIO_NO_PAGE_REF check into bio_release_pages
    block: skd_main.c: Remove call to memset after dma_alloc_coherent
    block: mtip32xx: Remove call to memset after dma_alloc_coherent
    ...

    Linus Torvalds
     
  • Pull device properties framework updates from Rafael Wysocki:
    "These add helpers for counting items in a property array and extend
    the "software nodes" support to be more convenient for representing
    device properties supplied by drivers and make the intel_cht_int33fe
    driver use that.

    Specifics:

    - Add helpers to count items in a property array (Andy Shevchenko).

    - Extend "software nodes" support to be more convenient for
    representing device properties supplied by drivers (Heikki
    Krogerus).

    - Add device_find_child_by_name() helper to the driver core (Heikki
    Krogerus).

    - Extend device connection code to also look for references provided
    via fwnode pointers (Heikki Krogerus).

    - Start to register proper struct device objects for USB Type-C muxes
    and orientation switches (Heikki Krogerus).

    - Update the intel_cht_int33fe driver to describe devices in a more
    general way with the help of "software nodes" (Heikki Krogerus)"

    * tag 'devprop-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    device property: Add helpers to count items in an array
    platform/x86: intel_cht_int33fe: Replacing the old connections with references
    platform/x86: intel_cht_int33fe: Supply fwnodes for the external dependencies
    platform/x86: intel_cht_int33fe: Provide fwnode for the USB connector
    platform/x86: intel_cht_int33fe: Provide software nodes for the devices
    platform/x86: intel_cht_int33fe: Remove unused fusb302 device property
    platform/x86: intel_cht_int33fe: Register max17047 in its own function
    usb: typec: Registering real device entries for the muxes
    device connection: Find connections also by checking the references
    device property: Introduce fwnode_find_reference()
    ACPI / property: Don't limit named child node matching to data nodes
    driver core: Add helper device_find_child_by_name()
    software node: Add software_node_get_reference_args()
    software node: Use kobject name when finding child nodes by name
    software node: Add support for static node descriptors
    software node: Simplify software_node_release() function
    software node: Allow node creation without properties

    Linus Torvalds
     
  • Pull ACPI updates from Rafael Wysocki:
    "These update the ACPICA code in the kernel to upstream revision
    20190703, fix up the handling of GPEs in ACPICA, allow some more ACPI
    code to be built on ARM64 platforms, allow BGRT to be overridden, fix
    minor issues and clean up assorted pieces of ACPI code.

    Specifics:

    - Update the ACPICA code in the kernel to upstream revision 20190703
    including:
    - Initial/default namespace creation simplification (Bob Moore).
    - Object initialization sequence update (Bob Moore).
    - Removal of legacy module-level (dead) code (Erik Schmauss).
    - Table load object initialization update (Erik Schmauss,
    Nikolaus Voss).

    - Fix GPE enabling issue in ACPICA causing premature wakeups from
    suspend-to-idle to occur (Rafael Wysocki).

    - Allow ACPI AC and battery drivers to be built on non-X86 (Ard
    Biesheuvel).

    - Fix address space handler removal in the ACPI PMIC driver for Intel
    platforms (Andy Shevchenko).

    - Allow BGRT to be overridden via initrd or configfs (Andrea
    Oliveri).

    - Fix object resolution on table loads via configfs (Nikolaus Voss).

    - Clean up assorted pieces of ACPI code and tools (Colin Ian King,
    Liguang Zhang, Masahiro Yamada).

    - Fix documentation build warning, convert the extcon document to
    ReST and add it to the ACPI documentation (Mauro Carvalho Chehab,
    Qian Cai)"

    * tag 'acpi-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / APEI: Remove needless __ghes_check_estatus() calls
    ACPICA: Update version to 20190703
    ACPICA: Update table load object initialization
    ACPICA: Update for object initialization sequence
    ACPICA: remove legacy module-level code due to deprecation
    ACPICA: Namespace: simplify creation of the initial/default namespace
    ACPI / PMIC: intel: Drop double removal of address space handler
    ACPI: APD: remove redundant assignment to pointer clk
    docs: extcon: convert it to ReST and move to ACPI dir
    ACPI: Make AC and battery drivers available on !X86
    ACPICA: Clear status of GPEs on first direct enable
    ACPI: configfs: Resolve objects on host-directed table loads
    ACPI: tables: Allow BGRT to be overridden
    ACPI: OSL: Make a W=1 kernel-doc warning go away
    ACPI: tools: Exclude tools/* from .gitignore patterns

    Linus Torvalds
     
  • Pull power management updates from Rafael Wysocki:
    "These update PCI and ACPI power management (improved handling of ACPI
    power resources and PCIe link delays, fixes related to corner cases,
    hibernation handling rework), fix and extend the operating performance
    points (OPP) framework, add new cpufreq drivers for Raspberry Pi and
    imx8m chips, update some other cpufreq drivers, clean up assorted
    pieces of PM code and documentation and update tools.

    Specifics:

    - Improve the handling of shared ACPI power resources in the PCI bus
    type layer (Mika Westerberg).

    - Make the PCI layer take link delays required by the PCIe spec into
    account as appropriate and avoid polling devices in D3cold for PME
    (Mika Westerberg).

    - Fix some corner case issues in ACPI device power management and in
    the PCI bus type layer, optimiza and clean up the handling of
    runtime-suspended PCI devices during system-wide transitions to
    sleep states (Rafael Wysocki).

    - Rework hibernation handling in the ACPI core and the PCI bus type
    to resume runtime-suspended devices before hibernation (which
    allows some functional problems to be avoided) and fix some ACPI
    power management issues related to hiberation (Rafael Wysocki).

    - Extend the operating performance points (OPP) framework to support
    a wider range of devices (Rajendra Nayak, Stehpen Boyd).

    - Fix issues related to genpd_virt_devs and issues with platforms
    using the set_opp() callback in the OPP framework (Viresh Kumar,
    Dmitry Osipenko).

    - Add new cpufreq driver for Raspberry Pi (Nicolas Saenz Julienne).

    - Add new cpufreq driver for imx8m and imx7d chips (Leonard Crestez).

    - Fix and clean up the pcc-cpufreq, brcmstb-avs-cpufreq, s5pv210, and
    armada-37xx cpufreq drivers (David Arcari, Florian Fainelli, Paweł
    Chmiel, YueHaibing).

    - Clean up and fix the cpufreq core (Viresh Kumar, Daniel Lezcano).

    - Fix minor issue in the ACPI system sleep support code and export
    one function from it (Lenny Szubowicz, Dexuan Cui).

    - Clean up assorted pieces of PM code and documentation (Kefeng Wang,
    Andy Shevchenko, Bart Van Assche, Greg Kroah-Hartman, Fuqian Huang,
    Geert Uytterhoeven, Mathieu Malaterre, Rafael Wysocki).

    - Update the pm-graph utility to v5.4 (Todd Brandt).

    - Fix and clean up the cpupower utility (Abhishek Goel, Nick Black)"

    * tag 'pm-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (57 commits)
    ACPI: PM: Make acpi_sleep_state_supported() non-static
    PM: sleep: Drop dev_pm_skip_next_resume_phases()
    ACPI: PM: Unexport acpi_device_get_power()
    Documentation: ABI: power: Add missing newline at end of file
    ACPI: PM: Drop unused function and function header
    ACPI: PM: Introduce "poweroff" callbacks for ACPI PM domain and LPSS
    ACPI: PM: Simplify and fix PM domain hibernation callbacks
    PCI: PM: Simplify bus-level hibernation callbacks
    PM: ACPI/PCI: Resume all devices during hibernation
    cpufreq: Avoid calling cpufreq_verify_current_freq() from handle_update()
    cpufreq: Consolidate cpufreq_update_current_freq() and __cpufreq_get()
    kernel: power: swap: use kzalloc() instead of kmalloc() followed by memset()
    cpufreq: Don't skip frequency validation for has_target() drivers
    PCI: PM/ACPI: Refresh all stale power state data in pci_pm_complete()
    PCI / ACPI: Add _PR0 dependent devices
    ACPI / PM: Introduce concept of a _PR0 dependent device
    PCI / ACPI: Use cached ACPI device state to get PCI device power state
    ACPI: PM: Allow transitions to D0 to occur in special cases
    ACPI: PM: Avoid evaluating _PS3 on transitions from D3hot to D3cold
    cpufreq: Use has_target() instead of !setpolicy
    ...

    Linus Torvalds
     
  • Pull sound updates from Takashi Iwai:
    "Many updates in this development cycle are found in ASoC where it got
    a wide range of changes for the continued refactoring.

    Some highlights are below.

    ASoC:

    - Continued refactoring work by Morimoto-san toward the full
    componentization; the changes are seen allover the places

    - Support for force disconnecting muxes in DAPM

    - Continued development of ASoC Intel SOF stuff

    - New drivers for Cirrus Logic CS47L35, CS47L85 and CS47L90, Conexant
    CX2072X, Realtek RT1011 and RT1308

    HD-audio:

    - More fixes and adjustments for ASoC SOF HD-audio

    - Fix for resume problem on some Realtek codecs

    USB-audio:

    - A few fixes for the issues reported by syzbot USB fuzzer

    - Fix for UAC2 extension unit parser

    - Quirks for Line6 Helix, Emgaic Unitor 8

    FireWire:

    - Lots of code refactoring and fixes in most of its components"

    * tag 'sound-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (626 commits)
    ALSA: firewire-lib: code refactoring for local variables
    ALSA: firewire-lib: code refactoring for post operation to data block counter
    ALSA: firewire-lib: code refactoring for error path of parser for CIP header
    ALSA: firewire-lib: fix different data block counter between probed event and transferred isochronous packet
    ALSA: firewire-lib: fix initial value of data block count for IR context without CIP_DBC_IS_END_EVENT
    ALSA: firewire-lib/fireface: fix initial value of data block counter for IR context with CIP_NO_HEADER
    ALSA: firewire-lib: fix invalid length of rx packet payload for tracepoint events
    ALSA: usb-audio: fix Line6 Helix audio format rates
    firewire-motu: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: firewire-digi00x: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: dice: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: oxfw: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: fireworks: fix wrong reference count for stream functionality at error path of rawmidi interface
    ALSA: bebob: fix wrong reference count for stream functionality at error path of rawmidi interface
    ASoC: SOF: Intel: implement runtime idle for CNL/APL
    ASoC: SOF: add runtime idle callback
    ASoC: hdac_hdmi: report codec link up/down status to bus
    ASoC: SOF: debug: fix possible memory leak in sof_dfsentry_write()
    ASoC: sunxi: sun50i-codec-analog: Add earpiece
    ASoC: rt5665: remove redundant assignment to variable idx
    ...

    Linus Torvalds
     
  • Pull fbdev updates from Bartlomiej Zolnierkiewicz:

    - remove fbdev notifier usage for fbcon (as prep work to clean up the
    fbcon locking), add locking checks in vt/console code and make
    assorted cleanups in fbdev and backlight code (Daniel Vetter)

    - add COMPILE_TEST support to atmel_lcdfb, da8xx-fb, gbefb, imxfb,
    pvr2fb and pxa168fb drivers (me)

    - fix DMA API abuse in au1200fb and jz4740_fb drivers (Christoph
    Hellwig)

    - add check for new BGRT status field rotation bits in efifb driver
    (Hans de Goede)

    - mark expected switch fall-throughs in s3c-fb driver (Gustavo A. R.
    Silva)

    - remove fbdev mxsfb driver in favour of the drm version (Fabio
    Estevam)

    - remove broken rfbi code from omap2fb driver (me)

    - misc fixes (Arnd Bergmann, Shobhit Kukreti, Wei Yongjun, me)

    - misc cleanups (Gustavo A. R. Silva, Colin Ian King, me)

    * tag 'fbdev-v5.3' of git://github.com/bzolnier/linux: (62 commits)
    video: fbdev: imxfb: fix a typo in imxfb_probe()
    video: fbdev: s3c-fb: Mark expected switch fall-throughs
    video: fbdev: s3c-fb: fix sparse warnings about using incorrect types
    video: fbdev: don't print error message on framebuffer_alloc() failure
    video: fbdev: intelfb: return -ENOMEM on framebuffer_alloc() failure
    video: fbdev: s3c-fb: return -ENOMEM on framebuffer_alloc() failure
    vga_switcheroo: Depend upon fbcon being built-in, if enabled
    video: fbdev: omap2: remove rfbi
    video: fbdev: atmel_lcdfb: remove redundant initialization to variable ret
    video: fbdev-MMP: Use struct_size() in devm_kzalloc()
    video: fbdev: controlfb: fix warnings about comparing pointer to 0
    efifb: BGRT: Add check for new BGRT status field rotation bits
    jz4740_fb: fix DMA API abuse
    video: fbdev: pvr2fb: fix link error for pvr2fb_pci_exit
    video: fbdev: s3c-fb: add COMPILE_TEST support
    video: fbdev: imxfb: fix sparse warnings about using incorrect types
    video: fbdev: pvr2fb: fix build warning when compiling as module
    fbcon: Export fbcon_update_vcs
    backlight: simplify lcd notifier
    staging/olpc_dcon: Add drm conversion to TODO
    ...

    Linus Torvalds
     
  • Pull media updates from Mauro Carvalho Chehab:

    - new Atmel microship ISC driver

    - coda has gained support for mpeg2 and mpeg4

    - cxusb gained support for analog TV

    - rockchip staging driver was split into two separate staging drivers

    - added a new staging driver for Allegro DVT video IP core

    - added a new staging driver for Amlogic Meson video decoder

    - lots of improvements and cleanups

    * tag 'media/v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (398 commits)
    media: allegro: use new v4l2_m2m_ioctl_try_encoder_cmd funcs
    media: doc-rst: Fix typos
    media: radio-raremono: change devm_k*alloc to k*alloc
    media: stv0297: fix frequency range limit
    media: rc: Prefer KEY_NUMERIC_* for number buttons on remotes
    media: dvb_frontend: split dvb_frontend_handle_ioctl function
    media: mceusb: disable "nonsensical irdata" messages
    media: rc: remove redundant dev_err message
    media: cec-notifier: add new notifier functions
    media: cec: add struct cec_connector_info support
    media: cec-notifier: rename variables, check kstrdup and n->conn_name
    media: MAINTAINERS: Add maintainers for Media Controller
    media: staging: media: tegra-vde: Defer dmabuf's unmapping
    media: staging: media: tegra-vde: Add IOMMU support
    media: hdpvr: fix locking and a missing msleep
    media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom()
    media: atmel: atmel-isc: fix i386 build error
    media: v4l2-ctrl: Move compound control initialization
    media: hantro: Use vb2_get_buffer
    media: pci: cx88: Change the type of 'missed' to u64
    ...

    Linus Torvalds
     
  • Pull EDAC updates from Tony Luck:
    "All the bits that Boris had queued in his tree plus four patches to
    add support for Intel Icelake Xeon and then fix a few corner cases"

    * tag 'please-pull-for_5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
    EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec
    EDAC, skx, i10nm: Fix source ID register offset
    EDAC, i10nm: Check ECC enabling status per channel
    EDAC, i10nm: Add Intel additional Ice-Lake support
    EDAC: Make edac_debugfs_create_x*() return void
    EDAC/aspeed: Remove set but not used variable 'np'
    EDAC/ie31200: Reformat PCI device table
    EDAC/ie31200: Add Intel Coffee Lake CPU support
    EDAC/sifive: Add EDAC platform driver for SiFive SoCs
    EDAC/sb_edac: Remove redundant update of tad_base
    arm64: dts: stratix10: Add SDMMC EDAC node
    EDAC/altera: Add Stratix10 SDMMC support
    arm64: dts: stratix10: Add OCRAM EDAC node
    EDAC/altera: Add Stratix10 OCRAM ECC support
    EDAC/sysfs: Drop device references properly
    EDAC/sysfs: Fix memory leak when creating a csrow object

    Linus Torvalds
     
  • Pull iommu updates from Joerg Roedel:

    - Make the dma-iommu code more generic so that it can be used outside
    of the ARM context with other IOMMU drivers. Goal is to make use of
    it on x86 too.

    - Generic IOMMU domain support for the Intel VT-d driver. This driver
    now makes more use of common IOMMU code to allocate default domains
    for the devices it handles.

    - An IOMMU fault reporting API to userspace. With that the IOMMU fault
    handling can be done in user-space, for example to forward the faults
    to a VM.

    - Better handling for reserved regions requested by the firmware. These
    can be 'relaxed' now, meaning that those don't prevent a device being
    attached to a VM.

    - Suspend/Resume support for the Renesas IOMMU driver.

    - Added support for dumping SVA related fields of the DMAR table in the
    Intel VT-d driver via debugfs.

    - A pile of smaller fixes and cleanups.

    * tag 'iommu-updates-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (90 commits)
    iommu/omap: No need to check return value of debugfs_create functions
    iommu/arm-smmu-v3: Invalidate ATC when detaching a device
    iommu/arm-smmu-v3: Fix compilation when CONFIG_CMA=n
    iommu/vt-d: Cleanup unused variable
    iommu/amd: Flush not present cache in iommu_map_page
    iommu/amd: Only free resources once on init error
    iommu/amd: Move gart fallback to amd_iommu_init
    iommu/amd: Make iommu_disable safer
    iommu/io-pgtable: Support non-coherent page tables
    iommu/io-pgtable: Replace IO_PGTABLE_QUIRK_NO_DMA with specific flag
    iommu/io-pgtable-arm: Add support to use system cache
    iommu/arm-smmu-v3: Increase maximum size of queues
    iommu/vt-d: Silence a variable set but not used
    iommu/vt-d: Remove an unused variable "length"
    iommu: Fix integer truncation
    iommu: Add padding to struct iommu_fault
    iommu/vt-d: Consolidate domain_init() to avoid duplication
    iommu/vt-d: Cleanup after delegating DMA domain to generic iommu
    iommu/vt-d: Fix suspicious RCU usage in probe_acpi_namespace_devices()
    iommu/vt-d: Allow DMA domain attaching to rmrr locked device
    ...

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "For the most part this is a quiet release for SPI, though there's
    several of the more widely used drivers that have had some fairly
    substantial development done on them, mainly improving performance and
    adding support for some more obscure use cases.

    Summary:

    - Support for configuring a minimum time for chip select to be
    deasserted between transfers from Martin Sperl.

    - A rework of the ACPI device instantiation code from Ard Biesheuvel.

    - Fairly substantial development on the AT91 USART, BCM2835 and
    Tegra114 drivers.

    - New driver for Socionext SynQuacer"

    * tag 'spi-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (58 commits)
    spi: pxa2xx: Add support for Intel Elkhart Lake
    spi: atmel-quadspi: fix resume call
    spi: atmel-quadspi: void return type for atmel_qspi_init()
    spi: pxa2xx: Set minimum transfer speed
    spi: stm32-qspi: remove signal sensitive on completion
    dt-bindings: spi: stm32-qspi: add dma properties
    spi: uniphier: fix zero-length transfer
    spi: uniphier: fix timeout error
    spi/acpi: avoid spurious matches during slave enumeration
    spi: spi-stm32-qspi: Remove CR_FTHRES_MASK usage
    spi: fix ctrl->num_chipselect constraint
    spi: spi-synquacer: Fixed build on architectures missing readsl/writesl series
    spi/acpi: fix incorrect ACPI parent check
    spi: don't open code list_for_each_entry_safe_reverse()
    spi: No need to assign dummy value in spi_unregister_controller()
    spi: Add a prototype for exported spi_set_cs_timing()
    spi/acpi: enumerate all SPI slaves in the namespace
    spi: qup: fix PIO/DMA transfers.
    spi: Use struct_size() helper
    spi: mediatek: add SPI_LSB_FIRST support
    ...

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "A couple of new features in the core, the most interesting one being
    support for complex regulator coupling configurations initially
    targeted at nVidia Tegra SoCs, and some new drivers but otherwise
    quite a quiet release.

    Summary:

    - Core support for gradual ramping of voltages for devices that can't
    manage large changes in hardware from Bartosz Golaszewski.

    - Core support for systems that have complex coupling requirements
    best described via code, contributed by Dmitry Osipenko.

    - New drivers for Dialog SLG51000, Qualcomm PM8005 and ST
    Microelectronics STM32-Booster"

    * tag 'regulator-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (52 commits)
    regulator: max77650: use vsel_step
    regulator: implement selector stepping
    regulator: max77650: add MODULE_ALIAS()
    regulator: max77620: remove redundant assignment to variable ret
    dt-bindings: regulator: add support for the stm32-booster
    regulator: add support for the stm32-booster
    regulator: s2mps11: Adjust supported buck voltages to real values
    regulator: s2mps11: Fix buck7 and buck8 wrong voltages
    gpio: Fix return value mismatch of function gpiod_get_from_of_node()
    regulator: core: Expose some of core functions needed by couplers
    regulator: core: Introduce API for regulators coupling customization
    regulator: s2mps11: Add support for disabling S2MPS11 regulators in suspend
    regulator: s2mps11: Reduce number of rdev_get_id() calls
    regulator: qcom_spmi: Do NULL check for lvs
    regulator: qcom_spmi: Fix math of spmi_regulator_set_voltage_time_sel
    regulator: da9061/62: Adjust LDO voltage selection minimum value
    regulator: s2mps11: Fix ERR_PTR dereference on GPIO lookup failure
    regulator: qcom_spmi: add PMS405 SPMI regulator
    dt-bindings: qcom_spmi: Document pms405 support
    arm64: dts: msm8998-mtp: Add pm8005_s1 regulator
    ...

    Linus Torvalds
     
  • Pull regmap updates from Mark Brown:
    "This is a relatively busy release for regmap, though not busy in the
    grand scheme of things, with the addition of support for I3C from
    Vitor Soares and a few small fixes and cleanups"

    * tag 'regmap-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: select CONFIG_REGMAP while REGMAP_SCCB is set
    regmap: lzo: Switch to bitmap_zalloc()
    regmap: fix bulk writes on paged registers
    regmap: add i3c bus support
    regmap: debugfs: Fix memory leak in regmap_debugfs_init

    Linus Torvalds
     
  • Pull GPIO updates from Linus Walleij:
    "This is the big slew of GPIO changes for the v5.3 kernel cycle. This
    is mostly incremental work this time.

    Three important things:

    - The FMC subsystem is deleted through my tree. This happens through
    GPIO as its demise was discussed in relation to a patch decoupling
    its GPIO implementation from the standard way of handling GPIO. As
    it turns out, that is not the only subsystem it reimplements and
    the authors think it is better do scratch it and start over using
    the proper kernel subsystems than try to polish the rust shiny. See
    the commit (ACKed by the maintainers) for details.

    - Arnd made a small devres patch that was ACKed by Greg and goes into
    the device core.

    - SPDX header change colissions may happen, because at times I've
    seen that quite a lot changed during the -rc:s in regards to SPDX.
    (It is good stuff, tglx has me convinced, and it is worth the
    occasional pain.)

    Apart from this is is nothing controversial or problematic.

    Summary:

    Core:

    - When a gpio_chip request GPIOs from itself, it can now fully
    control the line characteristics, both machine and consumer flags.
    This makes a lot of sense, but took some time before I figured out
    that this is how it has to work.

    - Several smallish documentation fixes.

    New drivers:

    - The PCA953x driver now supports the TI TCA9539.

    - The DaVinci driver now supports the K3 AM654 SoCs.

    Driver improvements:

    - Major overhaul and hardening of the OMAP driver by Russell King.

    - Starting to move some drivers to the new API passing irq_chip along
    with the gpio_chip when adding the gpio_chip instead of adding it
    separately.

    Unrelated:

    - Delete the FMC subsystem"

    * tag 'gpio-v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (87 commits)
    Revert "gpio: tegra: Clean-up debugfs initialisation"
    gpiolib: Use spinlock_t instead of struct spinlock
    gpio: stp-xway: allow compile-testing
    gpio: stp-xway: get rid of the #include dependency
    gpio: stp-xway: improve module clock error handling
    gpio: stp-xway: simplify error handling in xway_stp_probe()
    gpiolib: Clarify use of non-sleeping functions
    gpiolib: Fix references to gpiod_[gs]et_*value_cansleep() variants
    gpiolib: Document new gpio_chip.init_valid_mask field
    Documentation: gpio: Fix reference to gpiod_get_array()
    gpio: pl061: drop duplicate printing of device name
    gpio: altera: Pass irqchip when adding gpiochip
    gpio: siox: Use devm_ managed gpiochip
    gpio: siox: Add struct device *dev helper variable
    gpio: siox: Pass irqchip when adding gpiochip
    drivers: gpio: amd-fch: make resource struct const
    devres: allow const resource arguments
    gpio: ath79: Pass irqchip when adding gpiochip
    gpio: tegra: Clean-up debugfs initialisation
    gpio: siox: Switch to IRQ_TYPE_NONE
    ...

    Linus Torvalds
     
  • Pull ic3 updates from Boris Brezillon:

    - Drop support for 10-bit I2C addresses

    - Add support for limited bus mode

    - Fix the Cadence DT binding doc

    - Use struct_size() to allocate a DEFSLVS packet

    * tag 'i3c/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
    i3c: master: Use struct_size() helper
    dt-bindings: i3c: cdns: Use correct cells for I2C device
    i3c: dw: add limited bus mode support
    i3c: add mixed limited bus mode
    i3c: fix i2c and i3c scl rate by bus mode
    dt-bindings: i3c: Document dropped support for I2C 10 bit devices
    i3c: Drop support for I2C 10 bit addresing

    Linus Torvalds
     

09 Jul, 2019

11 commits

  • …anaszewski/linux-leds

    Pull LED updates from Jacek Anaszewski:

    - Add a new LED common module for ti-lmu driver family

    - Modify MFD ti-lmu bindings
    - add ti,brightness-resolution
    - add the ramp up/down property

    - Add regulator support for LM36274 driver to lm363x-regulator.c

    - New LED class drivers with DT bindings:
    - leds-spi-byte
    - leds-lm36274
    - leds-lm3697 (move the support from MFD to LED subsystem)

    - Simplify getting the I2C adapter of a client:
    - leds-tca6507
    - leds-pca955x

    - Convert LED documentation to ReST

    * tag 'leds-for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
    dt: leds-lm36274.txt: fix a broken reference to ti-lmu.txt
    docs: leds: convert to ReST
    leds: leds-tca6507: simplify getting the adapter of a client
    leds: leds-pca955x: simplify getting the adapter of a client
    leds: lm36274: Introduce the TI LM36274 LED driver
    dt-bindings: leds: Add LED bindings for the LM36274
    regulator: lm363x: Add support for LM36274
    mfd: ti-lmu: Add LM36274 support to the ti-lmu
    dt-bindings: mfd: Add lm36274 bindings to ti-lmu
    leds: max77650: Remove set but not used variable 'parent'
    leds: avoid flush_work in atomic context
    leds: lm3697: Introduce the lm3697 driver
    mfd: ti-lmu: Remove support for LM3697
    dt-bindings: ti-lmu: Modify dt bindings for the LM3697
    leds: TI LMU: Add common code for TI LMU devices
    leds: spi-byte: add single byte SPI LED driver
    dt-bindings: leds: Add binding for spi-byte LED.
    dt-bindings: mfd: LMU: Add ti,brightness-resolution
    dt-bindings: mfd: LMU: Add the ramp up/down property

    Linus Torvalds
     
  • …erry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "This set of changes contains a new driver for SiFive SoCs as well as
    enhancements to the core (device links are used to track dependencies
    between PWM providers and consumers, support for PWM controllers via
    ACPI, sysfs will now suspend/resume PWMs that it has claimed) and
    various existing drivers"

    * tag 'pwm/for-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (37 commits)
    pwm: fsl-ftm: Make sure to unlock mutex on failure
    pwm: fsl-ftm: Use write protection for prescaler & polarity
    pwm: fsl-ftm: More relaxed permissions for updating period
    pwm: atmel-hlcdc: Add compatible for SAM9X60 HLCDC's PWM
    pwm: bcm2835: Improve precision of PWM
    leds: pwm: Support ACPI via firmware-node framework
    pwm: Add support referencing PWMs from ACPI
    pwm: rcar: Remove suspend/resume support
    pwm: sysfs: Add suspend/resume support
    pwm: Add power management descriptions
    pwm: meson: Add documentation to the driver
    pwm: meson: Add support PWM_POLARITY_INVERSED when disabling
    pwm: meson: Don't cache struct pwm_state internally
    pwm: meson: Read the full hardware state in meson_pwm_get_state()
    pwm: meson: Simplify the calculation of the pre-divider and count
    pwm: meson: Move pwm_set_chip_data() to meson_pwm_request()
    pwm: meson: Add the per-channel register offsets and bits in a struct
    pwm: meson: Add the meson_pwm_channel data to struct meson_pwm
    pwm: meson: Pass struct pwm_device to meson_pwm_calc()
    pwm: meson: Don't duplicate the polarity internally
    ...

    Linus Torvalds
     
  • …/linux/kernel/git/acme/linux into perf/core

    Pull perf/urgent fixes from Arnaldo Carvalho de Melo:

    core:

    Arnaldo Carvalho de Melo:

    - Allow references to thread objects after__machine_exit(), fixing a bug with
    'perf sched lat' where that happens, i.e. after perf_session__delete() we
    still have references to threads that were in a linked list whose head was
    freed in perf_session__delete(), causing a segfault, fix it.

    Jiri Olsa:

    - Do not rely on errno values for precise_ip fallback, fixing the default
    use case for 'perf record' on some AMD servers, when no events are specified
    and we try to use "cycles:P", i.e. with the maximum precision level.

    BPF:

    Song Liu:

    - Assign proper ff->ph in perf_event__synthesize_features(), fixing a bug
    when using pipe mode, i.e. 'perf record -o -'.

    tools headers:

    Arnaldo Carvalho de Melo:

    - Sync kvm headers with the kernel sources

    perf tests:

    Seeteena Thoufeek:

    - Fix record+probe_libc_inet_pton.sh for powerpc64, where without the
    debuginfo package for the 'ping' utility we can't resolve its symbols,
    so admit getting "[unknown]" for that backtrace line.

    perf python:

    Arnaldo Carvalho de Melo:

    - Remove -fstack-protector-strong if clang doesn't have it, fixing the build
    with clang on fedora:30, oracleline:7, centos:7.

    perf jvmti:

    Jiri Olsa:

    - Address gcc string overflow warning for strncpy()

    build:

    Arnaldo Carvalho de Melo:

    - Check if gettid() is available before providing helper, as recent
    versions of glibc started to provide gettid().

    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • …iederm/user-namespace

    Pull force_sig() argument change from Eric Biederman:
    "A source of error over the years has been that force_sig has taken a
    task parameter when it is only safe to use force_sig with the current
    task.

    The force_sig function is built for delivering synchronous signals
    such as SIGSEGV where the userspace application caused a synchronous
    fault (such as a page fault) and the kernel responded with a signal.

    Because the name force_sig does not make this clear, and because the
    force_sig takes a task parameter the function force_sig has been
    abused for sending other kinds of signals over the years. Slowly those
    have been fixed when the oopses have been tracked down.

    This set of changes fixes the remaining abusers of force_sig and
    carefully rips out the task parameter from force_sig and friends
    making this kind of error almost impossible in the future"

    * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (27 commits)
    signal/x86: Move tsk inside of CONFIG_MEMORY_FAILURE in do_sigbus
    signal: Remove the signal number and task parameters from force_sig_info
    signal: Factor force_sig_info_to_task out of force_sig_info
    signal: Generate the siginfo in force_sig
    signal: Move the computation of force into send_signal and correct it.
    signal: Properly set TRACE_SIGNAL_LOSE_INFO in __send_signal
    signal: Remove the task parameter from force_sig_fault
    signal: Use force_sig_fault_to_task for the two calls that don't deliver to current
    signal: Explicitly call force_sig_fault on current
    signal/unicore32: Remove tsk parameter from __do_user_fault
    signal/arm: Remove tsk parameter from __do_user_fault
    signal/arm: Remove tsk parameter from ptrace_break
    signal/nds32: Remove tsk parameter from send_sigtrap
    signal/riscv: Remove tsk parameter from do_trap
    signal/sh: Remove tsk parameter from force_sig_info_fault
    signal/um: Remove task parameter from send_sigtrap
    signal/x86: Remove task parameter from send_sigtrap
    signal: Remove task parameter from force_sig_mceerr
    signal: Remove task parameter from force_sig
    signal: Remove task parameter from force_sigsegv
    ...

    Linus Torvalds
     
  • Pull cgroup updates from Tejun Heo:
    "Documentation updates and the addition of cgroup_parse_float() which
    will be used by new controllers including blk-iocost"

    * 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    docs: cgroup-v1: convert docs to ReST and rename to *.rst
    cgroup: Move cgroup_parse_float() implementation out of CONFIG_SYSFS
    cgroup: add cgroup_parse_float()

    Linus Torvalds
     
  • Pull workqueue updates from Tejun Heo:
    "Just a couple cleanup patches. No functional changes."

    * 'for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: Remove GPF argument from alloc_workqueue_attrs()
    workqueue: Make alloc/apply/free_workqueue_attrs() static

    Linus Torvalds
     
  • Pull ARM updates from Russell King:

    - Add a "cut here" to make it clearer where oops dumps should be cut
    from - we already have a marker for the end of the dumps.

    - Add logging severity to show_pte()

    - Drop unnecessary common-page-size linker flag

    - Errata workarounds for Cortex A12 857271, Cortex A17 857272 and
    Cortex A7 814220.

    - Remove some unused variables that had started to provoke a compiler
    warning.

    * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: 8863/1: stm32: select ARM errata 814220
    ARM: 8862/1: errata: 814220-B-Cache maintenance by set/way operations can execute out of order
    ARM: 8865/1: mm: remove unused variables
    ARM: 8864/1: Add workaround for I-Cache line size mismatch between CPU cores
    ARM: 8861/1: errata: Workaround errata A12 857271 / A17 857272
    ARM: 8860/1: VDSO: Drop implicit common-page-size linker flag
    ARM: arrange show_pte() to issue severity-based messages
    ARM: add "8 to kernel dumps

    Linus Torvalds
     
  • Pull crypto updates from Herbert Xu:
    "Here is the crypto update for 5.3:

    API:
    - Test shash interface directly in testmgr
    - cra_driver_name is now mandatory

    Algorithms:
    - Replace arc4 crypto_cipher with library helper
    - Implement 5 way interleave for ECB, CBC and CTR on arm64
    - Add xxhash
    - Add continuous self-test on noise source to drbg
    - Update jitter RNG

    Drivers:
    - Add support for SHA204A random number generator
    - Add support for 7211 in iproc-rng200
    - Fix fuzz test failures in inside-secure
    - Fix fuzz test failures in talitos
    - Fix fuzz test failures in qat"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (143 commits)
    crypto: stm32/hash - remove interruptible condition for dma
    crypto: stm32/hash - Fix hmac issue more than 256 bytes
    crypto: stm32/crc32 - rename driver file
    crypto: amcc - remove memset after dma_alloc_coherent
    crypto: ccp - Switch to SPDX license identifiers
    crypto: ccp - Validate the the error value used to index error messages
    crypto: doc - Fix formatting of new crypto engine content
    crypto: doc - Add parameter documentation
    crypto: arm64/aes-ce - implement 5 way interleave for ECB, CBC and CTR
    crypto: arm64/aes-ce - add 5 way interleave routines
    crypto: talitos - drop icv_ool
    crypto: talitos - fix hash on SEC1.
    crypto: talitos - move struct talitos_edesc into talitos.h
    lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
    crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
    crypto: asymmetric_keys - select CRYPTO_HASH where needed
    crypto: serpent - mark __serpent_setkey_sbox noinline
    crypto: testmgr - dynamically allocate crypto_shash
    crypto: testmgr - dynamically allocate testvec_config
    crypto: talitos - eliminate unneeded 'done' functions at build time
    ...

    Linus Torvalds
     
  • Pull integrity updates from Mimi Zohar:
    "Bug fixes, code clean up, and new features:

    - IMA policy rules can be defined in terms of LSM labels, making the
    IMA policy dependent on LSM policy label changes, in particular LSM
    label deletions. The new environment, in which IMA-appraisal is
    being used, frequently updates the LSM policy and permits LSM label
    deletions.

    - Prevent an mmap'ed shared file opened for write from also being
    mmap'ed execute. In the long term, making this and other similar
    changes at the VFS layer would be preferable.

    - The IMA per policy rule template format support is needed for a
    couple of new/proposed features (eg. kexec boot command line
    measurement, appended signatures, and VFS provided file hashes).

    - Other than the "boot-aggregate" record in the IMA measuremeent
    list, all other measurements are of file data. Measuring and
    storing the kexec boot command line in the IMA measurement list is
    the first buffer based measurement included in the measurement
    list"

    * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
    integrity: Introduce struct evm_xattr
    ima: Update MAX_TEMPLATE_NAME_LEN to fit largest reasonable definition
    KEXEC: Call ima_kexec_cmdline to measure the boot command line args
    IMA: Define a new template field buf
    IMA: Define a new hook to measure the kexec boot command line arguments
    IMA: support for per policy rule template formats
    integrity: Fix __integrity_init_keyring() section mismatch
    ima: Use designated initializers for struct ima_event_data
    ima: use the lsm policy update notifier
    LSM: switch to blocking policy update notifiers
    x86/ima: fix the Kconfig dependency for IMA_ARCH_POLICY
    ima: Make arch_policy_entry static
    ima: prevent a file already mmap'ed write to be mmap'ed execute
    x86/ima: check EFI SetupMode too

    Linus Torvalds
     
  • Pull keyring ACL support from David Howells:
    "This changes the permissions model used by keys and keyrings to be
    based on an internal ACL by the following means:

    - Replace the permissions mask internally with an ACL that contains a
    list of ACEs, each with a specific subject with a permissions mask.
    Potted default ACLs are available for new keys and keyrings.

    ACE subjects can be macroised to indicate the UID and GID specified
    on the key (which remain). Future commits will be able to add
    additional subject types, such as specific UIDs or domain
    tags/namespaces.

    Also split a number of permissions to give finer control. Examples
    include splitting the revocation permit from the change-attributes
    permit, thereby allowing someone to be granted permission to revoke
    a key without allowing them to change the owner; also the ability
    to join a keyring is split from the ability to link to it, thereby
    stopping a process accessing a keyring by joining it and thus
    acquiring use of possessor permits.

    - Provide a keyctl to allow the granting or denial of one or more
    permits to a specific subject. Direct access to the ACL is not
    granted, and the ACL cannot be viewed"

    * tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
    keys: Provide KEYCTL_GRANT_PERMISSION
    keys: Replace uid/gid/perm permissions checking with an ACL

    Linus Torvalds
     
  • …/git/dhowells/linux-fs

    Pull keyring namespacing from David Howells:
    "These patches help make keys and keyrings more namespace aware.

    Firstly some miscellaneous patches to make the process easier:

    - Simplify key index_key handling so that the word-sized chunks
    assoc_array requires don't have to be shifted about, making it
    easier to add more bits into the key.

    - Cache the hash value in the key so that we don't have to calculate
    on every key we examine during a search (it involves a bunch of
    multiplications).

    - Allow keying_search() to search non-recursively.

    Then the main patches:

    - Make it so that keyring names are per-user_namespace from the point
    of view of KEYCTL_JOIN_SESSION_KEYRING so that they're not
    accessible cross-user_namespace.

    keyctl_capabilities() shows KEYCTL_CAPS1_NS_KEYRING_NAME for this.

    - Move the user and user-session keyrings to the user_namespace
    rather than the user_struct. This prevents them propagating
    directly across user_namespaces boundaries (ie. the KEY_SPEC_*
    flags will only pick from the current user_namespace).

    - Make it possible to include the target namespace in which the key
    shall operate in the index_key. This will allow the possibility of
    multiple keys with the same description, but different target
    domains to be held in the same keyring.

    keyctl_capabilities() shows KEYCTL_CAPS1_NS_KEY_TAG for this.

    - Make it so that keys are implicitly invalidated by removal of a
    domain tag, causing them to be garbage collected.

    - Institute a network namespace domain tag that allows keys to be
    differentiated by the network namespace in which they operate. New
    keys that are of a type marked 'KEY_TYPE_NET_DOMAIN' are assigned
    the network domain in force when they are created.

    - Make it so that the desired network namespace can be handed down
    into the request_key() mechanism. This allows AFS, NFS, etc. to
    request keys specific to the network namespace of the superblock.

    This also means that the keys in the DNS record cache are
    thenceforth namespaced, provided network filesystems pass the
    appropriate network namespace down into dns_query().

    For DNS, AFS and NFS are good, whilst CIFS and Ceph are not. Other
    cache keyrings, such as idmapper keyrings, also need to set the
    domain tag - for which they need access to the network namespace of
    the superblock"

    * tag 'keys-namespace-20190627' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
    keys: Pass the network namespace into request_key mechanism
    keys: Network namespace domain tag
    keys: Garbage collect keys for which the domain has been removed
    keys: Include target namespace in match criteria
    keys: Move the user and user-session keyrings to the user_namespace
    keys: Namespace keyring names
    keys: Add a 'recurse' flag for keyring searches
    keys: Cache the hash value to avoid lots of recalculation
    keys: Simplify key description management

    Linus Torvalds