26 Apr, 2019

9 commits

  • We are able to detect invalid values handled by %p[iI] printk specifier.
    The current error message is "invalid address". It might cause confusion
    against "(efault)" reported by the generic valid_pointer_address() check.

    Let's unify the style and use the more appropriate error code description
    "(einval)".

    Link: http://lkml.kernel.org/r/20190417115350.20479-10-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Sergey Senozhatsky
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Petr Mladek
     
  • We already prevent crash when dereferencing some obviously broken
    pointers. But the handling is not consistent. Sometimes we print "(null)"
    only for pure NULL pointer, sometimes for pointers in the first
    page and sometimes also for pointers in the last page (error codes).

    Note that printk() call this code under logbuf_lock. Any recursive
    printks are redirected to the printk_safe implementation and the messages
    are stored into per-CPU buffers. These buffers might be eventually flushed
    in printk_safe_flush_on_panic() but it is not guaranteed.

    This patch adds a check using probe_kernel_read(). It is not a full-proof
    test. But it should help to see the error message in 99% situations where
    the kernel would silently crash otherwise.

    Also it makes the error handling unified for "%s" and the many %p*
    specifiers that need to read the data from a given address. We print:

    + (null) when accessing data on pure pure NULL address
    + (efault) when accessing data on an invalid address

    It does not affect the %p* specifiers that just print the given address
    in some form, namely %pF, %pf, %pS, %ps, %pB, %pK, %px, and plain %p.

    Note that we print (efault) from security reasons. In fact, the real
    address can be seen only by %px or eventually %pK.

    Link: http://lkml.kernel.org/r/20190417115350.20479-9-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Sergey Senozhatsky
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Petr Mladek
     
  • There are few printk formats that make sense only with two or more
    specifiers. Also some specifiers make sense only when a kernel feature
    is enabled.

    The handling of unknown specifiers is inconsistent and not helpful.
    Using WARN() looks like an overkill for this type of error. pr_warn()
    is not good either. It would by handled via printk_safe buffer and
    it might be hard to match it with the problematic string.

    A reasonable compromise seems to be writing the unknown format specifier
    into the original string with a question mark, for example (%pC?).
    It should be self-explaining enough. Note that it is in brackets
    to follow the (null) style.

    Note that it introduces a warning about that test_hashed() function
    is unused. It is going to be used again by a later patch.

    Link: http://lkml.kernel.org/r/20190417115350.20479-8-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Sergey Senozhatsky
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Petr Mladek
     
  • Move code from the long pointer() function. We are going to improve
    error handling that will make it even more complicated.

    This patch does not change the existing behavior.

    Link: http://lkml.kernel.org/r/20190417115350.20479-7-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Cc: Kees Cook
    Reviewed-by: Sergey Senozhatsky
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Petr Mladek
     
  • Move the code from the long pointer() function. We are going to improve
    error handling that will make it more complicated.

    This patch does not change the existing behavior.

    Link: http://lkml.kernel.org/r/20190417115350.20479-6-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Sergey Senozhatsky
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Petr Mladek
     
  • Move the non-trivial code from the long pointer() function. We are going
    to improve error handling that will make it even more complicated.

    This patch does not change the existing behavior.

    Link: http://lkml.kernel.org/r/20190417115350.20479-5-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Sergey Senozhatsky
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Petr Mladek
     
  • We are going to check the address using probe_kernel_address(). It will
    be more expensive and it does not make sense for well known address.

    This patch splits the string() function. The variant without the check
    is then used on locations that handle string constants or strings defined
    as local variables.

    This patch does not change the existing behavior.

    Link: http://lkml.kernel.org/r/20190417115350.20479-4-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek
    Reviewed-by: Sergey Senozhatsky

    Petr Mladek
     
  • restricted_pointer() pretends that it prints the address when kptr_restrict
    is set to zero. But it is never called in this situation. Instead,
    pointer() falls back to ptr_to_id() and hashes the pointer.

    This patch removes the potential confusion. klp_restrict is checked only
    in restricted_pointer().

    It actually fixes a small race when the address might get printed unhashed:

    CPU0 CPU1

    pointer()
    if (!kptr_restrict)
    /* for example set to 2 */
    restricted_pointer()
    /* echo 0 >/proc/sys/kernel/kptr_restrict */
    proc_dointvec_minmax_sysadmin()
    klpr_restrict = 0;
    switch(kptr_restrict)
    case 0:
    break:

    number()

    Fixes: ef0010a30935de4e0211 ("vsprintf: don't use 'restricted_pointer()' when not restricting")
    Link: http://lkml.kernel.org/r/20190417115350.20479-3-pmladek@suse.com
    To: Andy Shevchenko
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Cc: Kees Cook
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Steven Rostedt (VMware)
    Reviewed-by: Sergey Senozhatsky
    Signed-off-by: Petr Mladek

    Petr Mladek
     
  • This is just a preparation step for further changes.

    The patch does not change the code.

    Link: http://lkml.kernel.org/r/20190417115350.20479-2-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Sergey Senozhatsky
    Signed-off-by: Petr Mladek

    Petr Mladek
     

10 Mar, 2019

5 commits

  • Pull printk updates from Petr Mladek:

    - Allow to sort mixed lines by an extra information about the caller

    - Remove no longer used LOG_PREFIX.

    - Some clean up and documentation update.

    * tag 'printk-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
    printk/docs: Add extra integer types to printk-formats
    printk: Remove no longer used LOG_PREFIX.
    lib/vsprintf: Remove %pCr remnant in comment
    printk: Pass caller information to log_store().
    printk: Add caller information to printk() output.

    Linus Torvalds
     
  • …/git/shuah/linux-kselftest

    Pull kselftest update fromShuah Khan:

    - ir test compile warnings fixes

    - seccomp test fixes and improvements from Tycho Andersen and Kees Cook

    - ftrace fixes to non-POSIX-compliant constructs in colored output code
    and handling absence of tput from Juerg Haefliger

    * tag 'linux-kselftest-5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests/ftrace: Handle the absence of tput
    selftests/ftrace: Replace \e with \033
    selftests/ftrace: Replace echo -e with printf
    selftests: ir: skip when non-root user runs the test
    selftests: ir: skip when lirc device doesn't exist.
    selftests: ir: fix warning: "%s" directive output may be truncated ’ directive output may be truncated
    selftests/seccomp: Actually sleep for 1/10th second
    selftests/harness: Update named initializer syntax
    selftests: unshare userns in seccomp pidns testcases
    selftests: set NO_NEW_PRIVS bit in seccomp user tests
    selftests: skip seccomp get_metadata test if not real root
    selftest: include stdio.h in kselftest.h
    selftests: fix typo in seccomp_bpf.c
    selftests: don't kill child immediately in get_metadata() test

    Linus Torvalds
     
  • Pull gcc-plugins updates from Kees Cook:
    "This adds additional type coverage to the existing structleak plugin
    and adds a large set of selftests to help evaluate stack variable
    zero-initialization coverage.

    That can be used to test whatever instrumentation might be performing
    zero-initialization: either with the structleak plugin or with Clang's
    coming "-ftrivial-auto-var-init=zero" option.

    Summary:

    - Add scalar and array initialization coverage

    - Refactor Kconfig to make options more clear

    - Add self-test module for testing automatic initialization"

    * tag 'gcc-plugins-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    lib: Introduce test_stackinit module
    gcc-plugins: structleak: Generalize to all variable types

    Linus Torvalds
     
  • Pull pstore cleanups from Kees Cook:

    - Remove some needless memory allocations (Yue Hu, Kees Cook)

    - Add zero-length checks to avoid no-op calls (Yue Hu)

    * tag 'pstore-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    pstore/ram: Avoid needless alloc during header write
    pstore/ram: Add kmsg hlen zero check to ramoops_pstore_write()
    pstore/ram: Move initialization earlier
    pstore: Avoid writing records with zero size
    pstore/ram: Replace dummy_data heap memory with stack memory

    Linus Torvalds
     
  • Fixes: ("MAINTAINERS: Update from @linux.vnet.ibm.com to @linux.ibm.com")
    Reviewed-by: Paul E. McKenney
    Signed-off-by: Baruch Siach
    Signed-off-by: Linus Torvalds

    Baruch Siach
     

09 Mar, 2019

19 commits

  • Pull io_uring IO interface from Jens Axboe:
    "Second attempt at adding the io_uring interface.

    Since the first one, we've added basic unit testing of the three
    system calls, that resides in liburing like the other unit tests that
    we have so far. It'll take a while to get full coverage of it, but
    we're working towards it. I've also added two basic test programs to
    tools/io_uring. One uses the raw interface and has support for all the
    various features that io_uring supports outside of standard IO, like
    fixed files, fixed IO buffers, and polled IO. The other uses the
    liburing API, and is a simplified version of cp(1).

    This adds support for a new IO interface, io_uring.

    io_uring allows an application to communicate with the kernel through
    two rings, the submission queue (SQ) and completion queue (CQ) ring.
    This allows for very efficient handling of IOs, see the v5 posting for
    some basic numbers:

    https://lore.kernel.org/linux-block/20190116175003.17880-1-axboe@kernel.dk/

    Outside of just efficiency, the interface is also flexible and
    extendable, and allows for future use cases like the upcoming NVMe
    key-value store API, networked IO, and so on. It also supports async
    buffered IO, something that we've always failed to support in the
    kernel.

    Outside of basic IO features, it supports async polled IO as well.
    This particular feature has already been tested at Facebook months ago
    for flash storage boxes, with 25-33% improvements. It makes polled IO
    actually useful for real world use cases, where even basic flash sees
    a nice win in terms of efficiency, latency, and performance. These
    boxes were IOPS bound before, now they are not.

    This series adds three new system calls. One for setting up an
    io_uring instance (io_uring_setup(2)), one for submitting/completing
    IO (io_uring_enter(2)), and one for aux functions like registrating
    file sets, buffers, etc (io_uring_register(2)). Through the help of
    Arnd, I've coordinated the syscall numbers so merge on that front
    should be painless.

    Jon did a writeup of the interface a while back, which (except for
    minor details that have been tweaked) is still accurate. Find that
    here:

    https://lwn.net/Articles/776703/

    Huge thanks to Al Viro for helping getting the reference cycle code
    correct, and to Jann Horn for his extensive reviews focused on both
    security and bugs in general.

    There's a userspace library that provides basic functionality for
    applications that don't need or want to care about how to fiddle with
    the rings directly. It has helpers to allow applications to easily set
    up an io_uring instance, and submit/complete IO through it without
    knowing about the intricacies of the rings. It also includes man pages
    (thanks to Jeff Moyer), and will continue to grow support helper
    functions and features as time progresses. Find it here:

    git://git.kernel.dk/liburing

    Fio has full support for the raw interface, both in the form of an IO
    engine (io_uring), but also with a small test application (t/io_uring)
    that can exercise and benchmark the interface"

    * tag 'io_uring-2019-03-06' of git://git.kernel.dk/linux-block:
    io_uring: add a few test tools
    io_uring: allow workqueue item to handle multiple buffered requests
    io_uring: add support for IORING_OP_POLL
    io_uring: add io_kiocb ref count
    io_uring: add submission polling
    io_uring: add file set registration
    net: split out functions related to registering inflight socket files
    io_uring: add support for pre-mapped user IO buffers
    block: implement bio helper to add iter bvec pages to bio
    io_uring: batch io_kiocb allocation
    io_uring: use fget/fput_many() for file references
    fs: add fget_many() and fput_many()
    io_uring: support for IO polling
    io_uring: add fsync support
    Add io_uring IO interface

    Linus Torvalds
     
  • Pull block layer updates from Jens Axboe:
    "Not a huge amount of changes in this round, the biggest one is that we
    finally have Mings multi-page bvec support merged. Apart from that,
    this pull request contains:

    - Small series that avoids quiescing the queue for sysfs changes that
    match what we currently have (Aleksei)

    - Series of bcache fixes (via Coly)

    - Series of lightnvm fixes (via Mathias)

    - NVMe pull request from Christoph. Nothing major, just SPDX/license
    cleanups, RR mp policy (Hannes), and little fixes (Bart,
    Chaitanya).

    - BFQ series (Paolo)

    - Save blk-mq cpu -> hw queue mapping, removing a pointer indirection
    for the fast path (Jianchao)

    - fops->iopoll() added for async IO polling, this is a feature that
    the upcoming io_uring interface will use (Christoph, me)

    - Partition scan loop fixes (Dongli)

    - mtip32xx conversion from managed resource API (Christoph)

    - cdrom registration race fix (Guenter)

    - MD pull from Song, two minor fixes.

    - Various documentation fixes (Marcos)

    - Multi-page bvec feature. This brings a lot of nice improvements
    with it, like more efficient splitting, larger IOs can be supported
    without growing the bvec table size, and so on. (Ming)

    - Various little fixes to core and drivers"

    * tag 'for-5.1/block-20190302' of git://git.kernel.dk/linux-block: (117 commits)
    block: fix updating bio's front segment size
    block: Replace function name in string with __func__
    nbd: propagate genlmsg_reply return code
    floppy: remove set but not used variable 'q'
    null_blk: fix checking for REQ_FUA
    block: fix NULL pointer dereference in register_disk
    fs: fix guard_bio_eod to check for real EOD errors
    blk-mq: use HCTX_TYPE_DEFAULT but not 0 to index blk_mq_tag_set->map
    block: optimize bvec iteration in bvec_iter_advance
    block: introduce mp_bvec_for_each_page() for iterating over page
    block: optimize blk_bio_segment_split for single-page bvec
    block: optimize __blk_segment_map_sg() for single-page bvec
    block: introduce bvec_nth_page()
    iomap: wire up the iopoll method
    block: add bio_set_polled() helper
    block: wire up block device iopoll method
    fs: add an iopoll method to struct file_operations
    loop: set GENHD_FL_NO_PART_SCAN after blkdev_reread_part()
    loop: do not print warn message if partition scan is successful
    block: bounce: make sure that bvec table is updated
    ...

    Linus Torvalds
     
  • Pull libata updates from Jens Axboe:
    "Pretty quiet round: a few small fixes, comment typo, and most notably
    a low level driver for the PATA Buddha controller"

    * tag 'for-5.1/libata-20190301' of git://git.kernel.dk/linux-block:
    ata: libahci: Only warn for AHCI_HFLAG_MULTI_MSI set when genuine custom irq handler implemented
    libata: fix a typo in comment
    ata: macio: Use of_node_name_eq for node name comparisons
    ata: pata_samsung_cf: simplify getting .driver_data
    ata: pata_platform: Add IRQF_SHARED to IRQ flags
    ata: pata_of_platform: Allow to use 16-bit wide data transfer
    ata: add Buddha PATA controller driver

    Linus Torvalds
     
  • Pull GPIO updates from Linus Walleij:
    "This is the bulk of GPIO changes for the v5.1 cycle:

    Core changes:

    - The big change this time around is the irqchip handling in the
    qualcomm pin controllers, closely coupled with the gpiochip. This
    rework, in a classic fall-between-the-chairs fashion has been
    sidestepped for too long.

    The Qualcomm IRQchips using the SPMI and SSBI transport mechanisms
    have been rewritten to use hierarchical irqchip. This creates the
    base from which I intend to gradually pull support for hierarchical
    irqchips into the gpiolib irqchip helpers to cut down on duplicate
    code.

    We have too many hacks in the kernel because people have been
    working around the missing hierarchical irqchip for years, and once
    it was there, noone understood it for a while. We are now slowly
    adapting to using it.

    This is why this pull requests include changes to MFD, SPMI,
    IRQchip core and some ARM Device Trees pertaining to the Qualcomm
    chip family. Since Qualcomm have so many chips and such large
    deployments it is paramount that this platform gets this right, and
    now it (hopefully) does.

    - Core support for pull-up and pull-down configuration, also from the
    device tree. When a simple GPIO chip supports an "off or on" pull-up
    or pull-down resistor, we provide a way to set this up using
    machine descriptors or device tree.

    If more elaborate control of pull up/down (such as resistance shunt
    setting) is required, drivers should be phased over to use pin
    control. We do not yet provide a userspace ABI for this pull
    up-down setting but I suspect the makers are going to ask for it
    soon enough. PCA953x is the first user of this new API.

    - The GPIO mockup driver has been revamped after some discussion
    improving the IRQ simulator in the process.

    The idea is to make it possible to use the mockup for both testing
    and virtual prototyping, e.g. when you do not yet have a GPIO
    expander to play with but really want to get something to develop
    code around before hardware is available. It's neat. The blackbox
    testing usecase is currently making its way into kernelci.

    - ACPI GPIO core preserves non direction flags when updating flags.

    - A new device core helper for devm_platform_ioremap_resource() is
    funneled through the GPIO tree with Greg's ACK.

    New drivers:

    - TQ-Systems QTMX86 GPIO controllers (using port-mapped I/O)

    - Gateworks PLD GPIO driver (vaccumed up from OpenWrt)

    - AMD G-Series PCH (Platform Controller Hub) GPIO driver.

    - Fintek F81804 & F81966 subvariants.

    - PCA953x now supports NXP PCAL6416.

    Driver improvements:

    - IRQ support on the Nintendo Wii (Hollywood) GPIO.

    - get_direction() support for the MVEBU driver.

    - Set the right output level on SAMA5D2.

    - Drop the unused irq trigger setting on the Spreadtrum driver.

    - Wakeup support for PCA953x.

    - A slew of cleanups in the various Intel drivers"

    * tag 'gpio-v5.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (110 commits)
    gpio: gpio-omap: fix level interrupt idling
    gpio: amd-fch: Set proper output level for direction_output
    x86: apuv2: remove unused variable
    gpio: pca953x: Use PCA_LATCH_INT
    platform/x86: fix PCENGINES_APU2 Kconfig warning
    gpio: pca953x: Fix dereference of irq data in shutdown
    gpio: amd-fch: Fix type error found by sparse
    gpio: amd-fch: Drop const from resource
    gpio: mxc: add check to return defer probe if clock tree NOT ready
    gpio: ftgpio: Register per-instance irqchip
    gpio: ixp4xx: Add DT bindings
    x86: pcengines apuv2 gpio/leds/keys platform driver
    gpio: AMD G-Series PCH gpio driver
    drivers: depend on HAS_IOMEM for devm_platform_ioremap_resource()
    gpio: tqmx86: Set proper output level for direction_output
    gpio: sprd: Change to use SoC compatible string
    gpio: sprd: Use SoC compatible string instead of wildcard string
    gpio: of: Handle both enable-gpio{,s}
    gpio: of: Restrict enable-gpio quirk to regulator-gpio
    gpio: davinci: use devm_platform_ioremap_resource()
    ...

    Linus Torvalds
     
  • Pull MFD updates from Lee Jones:
    "New Drivers:
    - Add STMPE ADC Input driver
    - Add STMicroelectronics STPMIC1 Parent driver
    - Add STMicroelectronics STPMIC1 OnKey Misc driver
    - Add STMicroelectronics STPMIC1 Watchdog driver
    - Add Cirrus Logic Lochnagar Parent driver
    - Add TQ-Systems TQMX86 Parent driver

    New Device Support:
    - Add support for ADC to STMPE

    New (or moved) Functionality:
    - Move Lightbar functionality to its own driver; cros_ec_lightbar
    - Move VBC functionality to its own driver; cros_ec_vbc
    - Move VBC functionality to its own driver; cros_ec_vbc
    - Move DebugFS functionality to its own driver; cros_ec_debugfs
    - Move SYSFS functionality to its own driver; cros_ec_sysfs
    - Add support for input voltage options; tps65218

    Fixes:
    - Use devm_* managed resources; cros_ec
    - Device Tree documentation; stmpe, aspeed-lpc, lochnagar
    - Trivial Clean-ups; stmpe
    - Rip out broken modular code; aat2870-core, adp5520, as3711,
    db8500-prcmu, htc-i2cpld, max8925-core, rc5t583, sta2x11-mfd,
    syscon, tps65090, tps65910, tps68470 tps80031, wm831x-spi,
    wm831x-i2c, wm831x-core, wm8350-i2c, wm8350-core, wm8400-core
    - Kconfig fixups; INTEL_SOC_PMIC
    - Improve error path; sm501, sec-core
    - Use struct_size() helper; sm501
    - Constify; at91-usart
    - Use pointers instead of copying data; at91-usart
    - Deliver proper return value; cros_ec_dev
    - Trivial formatting/whitespace; sec-core"

    * tag 'mfd-next-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (53 commits)
    mfd: mxs-lradc: Mark expected switch fall-through
    mfd: sec-core: Cleanup formatting to a consistent style
    mfd: tqmx86: IO controller with I2C, Wachdog and GPIO
    mfd: intel-lpss: Move linux/pm.h to the local header
    mfd: cros_ec_dev: Return number of bytes read with CROS_EC_DEV_IOCRDMEM
    mfd: tps68470: Drop unused MODULE_DEVICE_TABLE
    mfd: at91-usart: No need to copy mfd_cell in probe
    mfd: at91-usart: Constify at91_usart_spi_subdev and at91_usart_serial_subdev
    mfd: lochnagar: Add support for the Cirrus Logic Lochnagar
    mfd: lochnagar: Add initial binding documentation
    dt-bindings: mfd: aspeed-lpc: Make parameter optional
    mfd: sec-core: Return gracefully instead of BUG() if device cannot match
    mfd: sm501: Use struct_size() in devm_kzalloc()
    mfd: sm501: Fix potential NULL pointer dereference
    mfd: Kconfig: Fix I2C_DESIGNWARE_PLATFORM dependencies
    mfd: tps65218.c: Add input voltage options
    mfd: wm8400-core: Make it explicitly non-modular
    mfd: wm8350-core: Drop unused module infrastructure from non-modular code
    mfd: wm8350-i2c: Make it explicitly non-modular
    mfd: wm831x-core: Drop unused module infrastructure from non-modular code
    ...

    Linus Torvalds
     
  • Pull backlight fixlet from Lee Jones:
    "Allow GPIO call to sleep in pwm_bl driver"

    * tag 'backlight-next-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
    backlight: pwm_bl: Use gpiod_get_value_cansleep() to get initial state

    Linus Torvalds
     
  • Pull RTC updates from Alexandre Belloni:
    "There is an unusual amount of new drivers this cycle, and this
    explains the number of insertions.

    Other than that, the changes are the usual fixes and feature addition.

    Subsystem updates:
    - new quartz-load-femtofarads DT property for quartz load capacitance
    - remove rtc_class_ops.read_callback

    New drivers:
    - Abracon AB-RTCMC-32.768kHz-EOZ9
    - Amlogic Meson RTC
    - Cadence RTC IP
    - Microcrystal RV3028
    - Whwave sd3078

    Driver updates:
    - cmos: ignore bogus century byte
    - ds1307: rework rx8130 support
    - isl1208: add isl1209 support, nvmem support
    - rs5C372: report invalid time when the oscillator stopped
    - rx8581: add rx8571 support"

    * tag 'rtc-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (66 commits)
    rtc: pic32: convert to SPDX identifier
    rtc: pic32: let the core handle range
    rtc: pic32: convert to devm_rtc_allocate_device
    rtc: update my email address
    rtc: rv8803: convert to SPDX identifier
    rtc: rv8803: let the core handle range
    rtc: tx4939: convert to SPDX identifier
    rtc: tx4939: use .set_time
    rtc: tx4939: switch to rtc_time64_to_tm/rtc_tm_to_time64
    rtc: tx4939: set range
    rtc: tx4939: remove useless test
    rtc: zynqmp: let the core handle range
    rtc: zynqmp: fix possible race condition
    rtc: imx-sc: use rtc_time64_to_tm
    rtc: rx8581: Add support for Epson rx8571 RTC
    dt-bindings: rtc: add rx8571 compatible
    rtc: pcf85063: remove dead code
    rtc: remove rtc_class_ops.read_callback
    rtc: add AB-RTCMC-32.768kHz-EOZ9 RTC support
    dt-bindings: rtc: add ABEOZ9
    ...

    Linus Torvalds
     
  • Pull thermal soc updates from Eduardo Valentin:
    "Specifics:

    - mediatek thermal now supports MT8183

    - broadcom thermal now supports Stingray

    - qoirq now supports multiple sensors

    - fixes on different drivers: rcar, tsens, tegra

    Some new drivers are still pending further review and I chose to leave
    them for the next merge window while still sending this material"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
    thermal: rcar_gen3_thermal: Register hwmon sysfs interface
    thermal/qcom/tsens-common : fix possible object reference leak
    thermal: tegra: add get_trend ops
    thermal: tegra: fix memory allocation
    thermal: tegra: remove unnecessary warnings
    thermal: mediatek: add support for MT8183
    dt-bindings: thermal: add binding document for mt8183 thermal controller
    thermal: mediatek: add flag for bank selection
    thermal: mediatek: add thermal controller offset
    thermal: mediatek: add calibration item
    thermal: mediatek: add common index of vts settings.
    thermal: mediatek: fix register index error
    thermal: qoriq: add multiple sensors support
    thermal: broadcom: Add Stingray thermal driver
    dt-bindings: thermal: Add binding document for SR thermal

    Linus Torvalds
     
  • Pull ibft updates from Konrad Rzeszutek Wilk:
    "Two tiny fixes - a missing break, and upgrading the subsystem to use
    modern macros"

    * 'stable/for-linus-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft:
    iscsi_ibft: use virt_to_phys instead of isa_virt_to_bus
    iscsi_ibft: Fix missing break in switch statement

    Linus Torvalds
     
  • Pull swiotlb updates from Konrad Rzeszutek Wilk:
    "Expands the SWIOTLB to have debugfs support (along with bug-fixes),
    and a tiny fix"

    * 'stable/for-linus-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
    swiotlb: drop pointless static qualifier in swiotlb_create_debugfs()
    swiotlb: checking whether swiotlb buffer is full with io_tlb_used
    swiotlb: add debugfs to track swiotlb buffer usage
    swiotlb: fix comment on swiotlb_bounce()

    Linus Torvalds
     
  • Pull i2c updates from Wolfram Sang:

    - the I2C core gained helpers to assist drivers in handling their
    suspended state, and drivers were converted to use it

    - two new fault-injectors for stress-testing

    - bigger refactoring and feature improvements for the ocores,
    sh_mobile, and tegra drivers

    - platform_data removal for the at24 EEPROM driver

    - ... and various improvements and bugfixes all over the subsystem

    * 'i2c/for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (69 commits)
    i2c: Allow recovery of the initial IRQ by an I2C client device.
    i2c: ocores: turn incomplete kdoc into a comment
    i2c: designware: Do not allow i2c_dw_xfer() calls while suspended
    i2c: tegra: Only display error messages if DMA setup fails
    i2c: gpio: fault-injector: add 'inject_panic' injector
    i2c: gpio: fault-injector: add 'lose_arbitration' injector
    i2c: tegra: remove multi-master support
    i2c: tegra: remove master fifo support on tegra186
    i2c: tegra: change phrasing, "fallbacking" to "falling back"
    i2c: expand minor range when registering chrdev region
    i2c: aspeed: Add multi-master use case support
    i2c: core-smbus: don't trace smbus_reply data on errors
    i2c: ocores: Add support for bus clock via platform data
    i2c: ocores: Add support for IO mapper registers.
    i2c: ocores: checkpatch fixes
    i2c: ocores: add SPDX tag
    i2c: ocores: add polling interface
    i2c: ocores: do not handle IRQ if IF is not set
    i2c: ocores: stop transfer on timeout
    i2c: tegra: add i2c interface timing support
    ...

    Linus Torvalds
     
  • Pull power supply and reset updates from Sebastian Reichel:
    "Nothing too fancy in the power-supply subsystem this time. There are
    less patches than usual, since I did not have enough time to review
    them in time. The good news is, that all patches have been in
    linux-next for more than two weeks and there are no complicated
    cross-subsystem patchsets this time!

    Summary:

    - at91-reset: add sam9x60 support

    - sc27xx: improve capacity logic

    - goldfish_battery: enhance driver by adding many new properties

    - isp1704: drop platform data and migrate to gpiod

    - misc small fixes and improvements"

    * tag 'for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (25 commits)
    power: reset: at91-reset: add support for sam9x60 SoC
    dt-bindings: arm: atmel: add new sam9x60 reset controller binding
    dt-bindings: arm: atmel: add missing samx7 to reset controller
    max17042_battery: fix potential use-after-free on device remove
    power: supply: core: Add a field to support battery max voltage
    dt-bindings: power: supply: Add voltage-max-design-microvolt property
    bq27x00: use cached flags
    power: supply: ds2782: fix possible use-after-free on remove
    power: supply: bq25890: show max charge current/voltage as configured
    power: supply: sc27xx: Fix capacity saving function
    power: supply: sc27xx: Fix the incorrect formula when converting capacity to coulomb counter
    power: supply: sc27xx: Add one property to read charge voltage
    dt-bindings: power: sc27xx: Add one IIO channel to read charge voltage
    drivers: power: supply: goldfish_battery: Add support for reading more properties
    power: supply: charger-manager: Fix trivial language typos
    cpcap-charger: generate events for userspace
    power: supply: remove some duplicated includes
    power: twl4030: fix a missing check of return value
    drivers: power: supply: goldfish_battery: Use tabs for alignment
    drivers: power: supply: goldfish_battery: Fix alignment
    ...

    Linus Torvalds
     
  • Pull HIS update from Sebastian Reichel:
    "Replace DEFINE_SIMPLE_ATTRIBUTE with DEFINE_DEBUGFS_ATTRIBUTE"

    * tag 'hsi-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
    HSI: omap_ssi_port: fix debugfs_simple_attr.cocci warnings

    Linus Torvalds
     
  • Pull IPMI updates from Corey Minyard:
    "A couple of bug fixes and a bunch of code cleanup:

    - Fix a use after free error in a certain error situation.

    - Fix some flag handling issues in the SSIF (I2C) IPMI driver.

    - A bunch of cleanups, spacing issues, converting pr_xxx to dev_xxx,
    use standard UUID handling, and some other minor stuff.

    - The IPMI code was creating a platform device if none was supplied.
    Instead of doing that, have every source that creates an IPMI
    device supply a device struct. This fixes several issues,including
    a crash in one situation, and cleans things up a bit"

    * tag 'for-linus-5.1' of git://github.com/cminyard/linux-ipmi:
    ipmi_si: Potential array underflow in hotmod_handler()
    ipmi_si: Remove hacks for adding a dummy platform devices
    ipmi_si: Consolidate scanning the platform bus
    ipmi_si: Remove hotmod devices on removal and exit
    ipmi_si: Remove hardcode IPMI devices by scanning the platform bus
    ipmi_si: Switch hotmod to use a platform device
    ipmi: Consolidate the adding of platform devices
    ipmi_si: Rename addr_type to addr_space to match what it does
    ipmi_si: Convert some types into unsigned
    ipmi_si: Fix crash when using hard-coded device
    ipmi: Use dedicated API for copying a UUID
    ipmi: Use defined constant for UUID representation
    ipmi:ssif: Change some pr_xxx to dev_xxx calls
    ipmi: kcs_bmc: handle devm_kasprintf() failure case
    ipmi: Fix return value when a message is truncated
    ipmi: clean an indentation issue, remove extraneous space
    ipmi: Make the smi watcher be disabled immediately when not needed
    ipmi: Fix how the lower layers are told to watch for messages
    ipmi: Fix SSIF flag requests
    ipmi_si: fix use-after-free of resource->name

    Linus Torvalds
     
  • Pull RAS updates from Borislav Petkov:
    "This time around we have in store:

    - Disable MC4_MISC thresholding banks on all AMD family 0x15 models
    (Shirish S)

    - AMD MCE error descriptions update and error decode improvements
    (Yazen Ghannam)

    - The usual smaller conversions and fixes"

    * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mce: Improve error message when kernel cannot recover, p2
    EDAC/mce_amd: Decode MCA_STATUS in bit definition order
    EDAC/mce_amd: Decode MCA_STATUS[Scrub] bit
    EDAC, mce_amd: Print ExtErrorCode and description on a single line
    EDAC, mce_amd: Match error descriptions to latest documentation
    x86/MCE/AMD, EDAC/mce_amd: Add new error descriptions for some SMCA bank types
    x86/MCE/AMD, EDAC/mce_amd: Add new McaTypes for CS, PSP, and SMU units
    x86/MCE/AMD, EDAC/mce_amd: Add new MP5, NBIO, and PCIE SMCA bank types
    RAS: Add a MAINTAINERS entry
    RAS: Use consistent types for UUIDs
    x86/MCE/AMD: Carve out the MC4_MISC thresholding quirk
    x86/MCE/AMD: Turn off MC4_MISC thresholding on all family 0x15 models
    x86/MCE: Switch to use the new generic UUID API

    Linus Torvalds
     
  • Pull EDAC updates from Borislav Petkov:

    - A new EDAC AST 2500 SoC driver (Stefan M Schaeckeler)

    - New i10nm EDAC driver for Intel 10nm CPUs (Qiuxu Zhuo and Tony Luck)

    - Altera SDRAM functionality carveout for separate enablement of RAS
    and SDRAM capabilities on some Altera chips. (Thor Thayer)

    - The usual round of cleanups and fixes

    And last but not least: recruit James Morse as a reviewer for the ARM
    side.

    * tag 'edac_for_5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    EDAC/altera: Add separate SDRAM EDAC config
    EDAC, altera: Add missing of_node_put()
    EDAC, skx_common: Add code to recognise new compound error code
    EDAC, i10nm: Fix randconfig builds
    EDAC, i10nm: Add a driver for Intel 10nm server processors
    EDAC, skx_edac: Delete duplicated code
    EDAC, skx_common: Separate common code out from skx_edac
    EDAC: Do not check return value of debugfs_create() functions
    EDAC: Add James Morse as a reviewer
    dt-bindings, EDAC: Add Aspeed AST2500
    EDAC, aspeed: Add an Aspeed AST2500 EDAC driver

    Linus Torvalds
     
  • Pull HID updates from Jiri Kosina:

    - support for Pro Pen slim, from Jason Gerecke

    - power management improvements to Intel-ISH driver, from Song Hongyan

    - UCLogic driver revamp in order to be able to support wider range of
    Huion tablets, from Nikolai Kondrashov

    - Asus Transbook support, from NOGUCHI Hiroshi

    - other assorted small bugfixes / cleanups and device ID additions

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (46 commits)
    HID: Remove Waltop tablets from hid_have_special_driver
    HID: Remove KYE tablets from hid_have_special_driver
    HID: Remove hid-uclogic entries from hid_have_special_driver
    HID: uclogic: Do not initialize non-USB devices
    HID: uclogic: Add support for Ugee G5
    HID: uclogic: Support Gray-coded rotary encoders
    HID: uclogic: Support faking Wacom pad device ID
    HID: uclogic: Add support for XP-Pen Deco 01
    HID: uclogic: Add support for XP-Pen Star G640
    HID: uclogic: Add support for XP-Pen Star G540
    HID: uclogic: Add support for Ugee EX07S frame controls
    HID: uclogic: Add support for Ugee M540
    HID: uclogic: Add support for Ugee 2150
    HID: uclogic: Support v2 protocol
    HID: uclogic: Support fragmented high-res reports
    HID: uclogic: Support in-range reporting emulation
    HID: uclogic: Designate current protocol v1
    HID: uclogic: Re-initialize tablets on resume
    HID: uclogic: Extract tablet parameter discovery into a module
    HID: uclogic: Extract report descriptors to a module
    ...

    Linus Torvalds
     
  • Pull livepatching updates from Jiri Kosina:

    - support for something we call 'atomic replace', and allows for much
    better handling of cumulative patches (which is something very useful
    for distros), from Jason Baron with help of Petr Mladek and Joe
    Lawrence

    - improvement of handling of tasks blocking finalization, from Miroslav
    Benes

    - update of MAINTAINERS file to reflect move towards group
    maintainership

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching: (22 commits)
    livepatch/selftests: use "$@" to preserve argument list
    livepatch: Module coming and going callbacks can proceed with all listed patches
    livepatch: Proper error handling in the shadow variables selftest
    livepatch: return -ENOMEM on ptr_id() allocation failure
    livepatch: Introduce klp_for_each_patch macro
    livepatch: core: Return EOPNOTSUPP instead of ENOSYS
    selftests/livepatch: add DYNAMIC_DEBUG config dependency
    livepatch: samples: non static warnings fix
    livepatch: update MAINTAINERS
    livepatch: Remove signal sysfs attribute
    livepatch: Send a fake signal periodically
    selftests/livepatch: introduce tests
    livepatch: Remove ordering (stacking) of the livepatches
    livepatch: Atomic replace and cumulative patches documentation
    livepatch: Remove Nop structures when unused
    livepatch: Add atomic replace
    livepatch: Use lists to manage patches, objects and functions
    livepatch: Simplify API by removing registration step
    livepatch: Don't block the removal of patches loaded after a forced transition
    livepatch: Consolidate klp_free functions
    ...

    Linus Torvalds
     
  • Pull drm updates from Dave Airlie:
    "This is the main drm pull request for the 5.1 merge window.

    The big changes I'd highlight are:
    - nouveau has HMM support now, there is finally an in-tree user so we
    can quieten down the rip it out people.
    - i915 now enables fastboot by default on Skylake+
    - Displayport Multistream support has been refactored and should
    hopefully be more reliable.

    Core:
    - header cleanups aiming towards removing drmP.h
    - dma-buf fence seqnos to 64-bits
    - common helper for DP mst hotplug for radeon,i915,amdgpu + new
    refcounting scheme
    - MST i2c improvements
    - drm_syncobj_cb removal
    - ARM FB compression fourcc
    - P010 + P016 fourcc
    - allwinner tiled format modifier
    - i2c over aux I2C_M_STOP support
    - DRM_AUTH handling fixes

    TTM:
    - ref/unref renaming

    New driver:
    - ARM komeda display driver

    scheduler:
    - refactor mirror list handling
    - rework hw fence processing
    - 0 run queue entity fix

    bridge:
    - TI DS90C185 LVDS bridge
    - thc631lvdm83d bridge improvements
    - cadence + allwinner DSI ported to generic phy

    panels:
    - Sitronix ST7701 panel
    - Kingdisplay KD097D04
    - LeMaker BL035-RGB-002
    - PDA 91-00156-A0
    - Innolux EE101IA-01D

    i915:
    - Enable fastboot by default on SKL+/VLV/CHV
    - Export RPCS configuration for ICL media driver
    - Coffelake PCI ID
    - CNL clocks setup fixes
    - ACPI/PMIC support for MIPI/DSI
    - Per-engine WA init for all engines
    - Shrinker locking fixes
    - Kerneldoc updates
    - Lots of ring improvements and reset fixes
    - Coffeelake GVT Support
    - VFIO GVT EDID Region support
    - runtime PM wakeref tracking
    - ILK->IVB primary plane enable delays
    - userptr mutex locking fixes
    - DSI fixes
    - LVDS/TV cleanups
    - HW readout fixes
    - LUT robustness fixes
    - ICL display and watermark fixes
    - gem mmap race fix

    amdgpu:
    - add scheduled dependencies interface
    - DCC on scanout surfaces
    - vega10/20 BACO support
    - Multiple IH rings on soc15
    - XGMI locking fixes
    - DC i2c/aux cleanups
    - runtime SMU debug interface
    - Kexec improvmeents
    - SR-IOV fixes
    - DC freesync + ABM fixes
    - GDS fixes
    - GPUVM fixes
    - vega20 PCIE DPM switching fixes
    - Context priority handling fixes

    radeon:
    - fix missing break in evergreen parser

    nouveau:
    - SVM support via HMM

    msm:
    - QCOM Compressed modifier support

    exynos:
    - s5pv210 rotator support

    imx:
    - zpos property support
    - pending update fixes

    v3d:
    - cache flush improvments

    vc4:
    - reflection support
    - HDMI overscan support

    tegra:
    - CEC refactoring
    - HDMI audio fixes
    - Tegra186 prep work
    - SOR crossbar device tree fixes

    sun4i:
    - implicit fencing support
    - YUV and scalar support improvements
    - A23 support
    - tiling fixes

    atmel-hlcdc:
    - clipping and rotation property fixes

    qxl:
    - BO and PRIME improvements
    - generic fbdev emulation

    dw-hdmi:
    - HDMI 2.0 2160p
    - YUV420 ouput

    rockchip:
    - implicit fencing support
    - reflection proerties

    virtio-gpu:
    - use generic fbdev emulation

    tilcdc:
    - cpufreq vs crtc init fix

    rcar-du:
    - R8A774C0 support
    - D3/E3 RGB output routing fixes and DPAD0 support
    - RA87744 LVDS support

    bochs:
    - atomic and generic fbdev emulation
    - ID mismatch error on bochs load

    meson:
    - remove firmware fbs"

    * tag 'drm-next-2019-03-06' of git://anongit.freedesktop.org/drm/drm: (1130 commits)
    drm/amd/display: Use vrr friendly pageflip throttling in DC.
    drm/imx: only send commit done event when all state has been applied
    drm/imx: allow building under COMPILE_TEST
    drm/imx: imx-tve: depend on COMMON_CLK
    drm/imx: ipuv3-plane: add zpos property
    drm/imx: ipuv3-plane: add function to query atomic update status
    gpu: ipu-v3: prg: add function to get channel configure status
    gpu: ipu-v3: pre: add double buffer status readback
    drm/amdgpu: Bump amdgpu version for context priority override.
    drm/amdgpu/powerplay: fix typo in BACO header guards
    drm/amdgpu/powerplay: fix return codes in BACO code
    drm/amdgpu: add missing license on baco files
    drm/bochs: Fix the ID mismatch error
    drm/nouveau/dmem: use dma addresses during migration copies
    drm/nouveau/dmem: use physical vram addresses during migration copies
    drm/nouveau/dmem: extend copy function to allow direct use of physical addresses
    drm/nouveau/svm: new ioctl to migrate process memory to GPU memory
    drm/nouveau/dmem: device memory helpers for SVM
    drm/nouveau/svm: initial support for shared virtual memory
    drm/nouveau: prepare for enabling svm with existing userspace interfaces
    ...

    Linus Torvalds
     

08 Mar, 2019

7 commits

  • Tony notes that the GPIO module does not idle when level interrupts are
    in use, as the wakeup appears to get stuck.

    After extensive investigation, it appears that the wakeup will only be
    cleared if the interrupt status register is cleared while the interrupt
    is enabled. However, we are currently clearing it with the interrupt
    disabled for level-based interrupts.

    It is acknowledged that this observed behaviour conflicts with a
    statement in the TRM:

    CAUTION
    After servicing the interrupt, the status bit in the interrupt status
    register (GPIOi.GPIO_IRQSTATUS_0 or GPIOi.GPIO_IRQSTATUS_1) must be
    reset and the interrupt line released (by setting the corresponding
    bit of the interrupt status register to 1) before enabling an
    interrupt for the GPIO channel in the interrupt-enable register
    (GPIOi.GPIO_IRQSTATUS_SET_0 or GPIOi.GPIO_IRQSTATUS_SET_1) to prevent
    the occurrence of unexpected interrupts when enabling an interrupt
    for the GPIO channel.

    However, this does not appear to be a practical problem.

    Further, as reported by Grygorii Strashko ,
    the TI Android kernel tree has an earlier similar patch as "GPIO: OMAP:
    Fix the sequence to clear the IRQ status" saying:

    if the status is cleared after disabling the IRQ then sWAKEUP will not
    be cleared and gates the module transition

    When we unmask the level interrupt after the interrupt has been handled,
    enable the interrupt and only then clear the interrupt. If the interrupt
    is still pending, the hardware will re-assert the interrupt status.

    Should the caution note in the TRM prove to be a problem, we could
    use a clear-enable-clear sequence instead.

    Cc: Aaro Koskinen
    Cc: Keerthy
    Cc: Peter Ujfalusi
    Signed-off-by: Russell King
    [tony@atomide.com: updated comments based on an earlier TI patch]
    Signed-off-by: Tony Lindgren
    Acked-by: Grygorii Strashko
    Signed-off-by: Linus Walleij

    Russell King
     
  • Current amd_fch_gpio_direction_output implementation ignores the value
    argument, fix it so direction_output will set proper output level.

    Signed-off-by: Axel Lin
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Enrico Weigelt
    Signed-off-by: Linus Walleij

    Axel Lin
     
  • The driver was newly introduced but the version that got merged
    produces a harmless compiler warning:

    drivers/platform/x86/pcengines-apuv2.c: In function 'apu_board_init':
    drivers/platform/x86/pcengines-apuv2.c:211:6: error: unused variable 'rc' [-Werror=unused-variable]

    Remove the evidently useless variable.

    Fixes: f8eb0235f659 ("x86: pcengines apuv2 gpio/leds/keys platform driver")
    Signed-off-by: Arnd Bergmann
    Reviewed-By: Enrico Weigelt, metux IT consult
    Signed-off-by: Linus Walleij

    Arnd Bergmann
     
  • The commit 0cdf21b34e30

    ("gpio: pca953x: set the PCA_PCAL flag also when matching by DT")

    introduces a helper macro which tells that chip supports latched interrupts,
    but the macro was never used for ACPI or legacy enumeration.

    So, make use of it for legacy and ACPI enumeration.

    Cc: H. Nikolaus Schaller
    Signed-off-by: Andy Shevchenko
    Signed-off-by: Linus Walleij

    Andy Shevchenko
     
  • Fix Kconfig warning for PCENGINES_APU2 symbol:

    WARNING: unmet direct dependencies detected for KEYBOARD_GPIO_POLLED
    Depends on [n]: !UML && INPUT [=y] && INPUT_KEYBOARD [=n] && GPIOLIB [=y]
    Selected by [y]:
    - PCENGINES_APU2 [=y] && X86 [=y] && X86_PLATFORM_DEVICES [=y]

    Add INPUT_KEYBOARD dependency for KEYBOARD_GPIO_POLLED.
    Add LEDS_CLASS dependency for LEDS_GPIO.

    Fixes: f8eb0235f659 ("x86: pcengines apuv2 gpio/leds/keys platform driver")
    Reported-by: Arnd Bergmann
    Signed-off-by: Randy Dunlap
    Cc: Enrico Weigelt, metux IT consult
    Signed-off-by: Linus Walleij

    Randy Dunlap
     
  • Merge more updates from Andrew Morton:

    - some of the rest of MM

    - various misc things

    - dynamic-debug updates

    - checkpatch

    - some epoll speedups

    - autofs

    - rapidio

    - lib/, lib/lzo/ updates

    * emailed patches from Andrew Morton : (83 commits)
    samples/mic/mpssd/mpssd.h: remove duplicate header
    kernel/fork.c: remove duplicated include
    include/linux/relay.h: fix percpu annotation in struct rchan
    arch/nios2/mm/fault.c: remove duplicate include
    unicore32: stop printing the virtual memory layout
    MAINTAINERS: fix GTA02 entry and mark as orphan
    mm: create the new vm_fault_t type
    arm, s390, unicore32: remove oneliner wrappers for memblock_alloc()
    arch: simplify several early memory allocations
    openrisc: simplify pte_alloc_one_kernel()
    sh: prefer memblock APIs returning virtual address
    microblaze: prefer memblock API returning virtual address
    powerpc: prefer memblock APIs returning virtual address
    lib/lzo: separate lzo-rle from lzo
    lib/lzo: implement run-length encoding
    lib/lzo: fast 8-byte copy on arm64
    lib/lzo: 64-bit CTZ on arm64
    lib/lzo: tidy-up ifdefs
    ipc/sem.c: replace kvmalloc/memset with kvzalloc and use struct_size
    ipc: annotate implicit fall through
    ...

    Linus Torvalds
     
  • Remove duplicate headers which are included more than once

    Link: http://lkml.kernel.org/r/20190114170033.GA3674@hp-pavilion-15-notebook-pc-brajeswar
    Signed-off-by: Brajeswar Ghosh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Brajeswar Ghosh