28 Oct, 2020

1 commit


17 Oct, 2020

1 commit

  • Fix multiple occurrences of duplicated words in kernel/.

    Fix one typo/spello on the same line as a duplicate word. Change one
    instance of "the the" to "that the". Otherwise just drop one of the
    repeated words.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Link: https://lkml.kernel.org/r/98202fa6-8919-ef63-9efe-c0fad5ca7af1@infradead.org
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

15 Oct, 2020

1 commit

  • Pull power management updates from Rafael Wysocki:
    "These rework the collection of cpufreq statistics to allow it to take
    place if fast frequency switching is enabled in the governor, rework
    the frequency invariance handling in the cpufreq core and drivers, add
    new hardware support to a couple of cpufreq drivers, fix a number of
    assorted issues and clean up the code all over.

    Specifics:

    - Rework cpufreq statistics collection to allow it to take place when
    fast frequency switching is enabled in the governor (Viresh Kumar).

    - Make the cpufreq core set the frequency scale on behalf of the
    driver and update several cpufreq drivers accordingly (Ionela
    Voinescu, Valentin Schneider).

    - Add new hardware support to the STI and qcom cpufreq drivers and
    improve them (Alain Volmat, Manivannan Sadhasivam).

    - Fix multiple assorted issues in cpufreq drivers (Jon Hunter,
    Krzysztof Kozlowski, Matthias Kaehlcke, Pali Rohár, Stephan
    Gerhold, Viresh Kumar).

    - Fix several assorted issues in the operating performance points
    (OPP) framework (Stephan Gerhold, Viresh Kumar).

    - Allow devfreq drivers to fetch devfreq instances by DT enumeration
    instead of using explicit phandles and modify the devfreq core code
    to support driver-specific devfreq DT bindings (Leonard Crestez,
    Chanwoo Choi).

    - Improve initial hardware resetting in the tegra30 devfreq driver
    and clean up the tegra cpuidle driver (Dmitry Osipenko).

    - Update the cpuidle core to collect state entry rejection statistics
    and expose them via sysfs (Lina Iyer).

    - Improve the ACPI _CST code handling diagnostics (Chen Yu).

    - Update the PSCI cpuidle driver to allow the PM domain
    initialization to occur in the OSI mode as well as in the PC mode
    (Ulf Hansson).

    - Rework the generic power domains (genpd) core code to allow domain
    power off transition to be aborted in the absence of the "power
    off" domain callback (Ulf Hansson).

    - Fix two suspend-to-idle issues in the ACPI EC driver (Rafael
    Wysocki).

    - Fix the handling of timer_expires in the PM-runtime framework on
    32-bit systems and the handling of device links in it (Grygorii
    Strashko, Xiang Chen).

    - Add IO requests batching support to the hibernate image saving and
    reading code and drop a bogus get_gendisk() from there (Xiaoyi
    Chen, Christoph Hellwig).

    - Allow PCIe ports to be put into the D3cold power state if they are
    power-manageable via ACPI (Lukas Wunner).

    - Add missing header file include to a power capping driver (Pujin
    Shi).

    - Clean up the qcom-cpr AVS driver a bit (Liu Shixin).

    - Kevin Hilman steps down as designated reviwer of adaptive voltage
    scaling (AVS) drivers (Kevin Hilman)"

    * tag 'pm-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (65 commits)
    cpufreq: stats: Fix string format specifier mismatch
    arm: disable frequency invariance for CONFIG_BL_SWITCHER
    cpufreq,arm,arm64: restructure definitions of arch_set_freq_scale()
    cpufreq: stats: Add memory barrier to store_reset()
    cpufreq: schedutil: Simplify sugov_fast_switch()
    ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()
    ACPI: EC: PM: Flush EC work unconditionally after wakeup
    PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI
    PM: hibernate: remove the bogus call to get_gendisk() in software_resume()
    cpufreq: Move traces and update to policy->cur to cpufreq core
    cpufreq: stats: Enable stats for fast-switch as well
    cpufreq: stats: Mark few conditionals with unlikely()
    cpufreq: stats: Remove locking
    cpufreq: stats: Defer stats update to cpufreq_stats_record_transition()
    PM: domains: Allow to abort power off when no ->power_off() callback
    PM: domains: Rename power state enums for genpd
    PM / devfreq: tegra30: Improve initial hardware resetting
    PM / devfreq: event: Change prototype of devfreq_event_get_edev_by_phandle function
    PM / devfreq: Change prototype of devfreq_get_devfreq_by_phandle function
    PM / devfreq: Add devfreq_get_devfreq_by_node function
    ...

    Linus Torvalds
     

14 Oct, 2020

1 commit

  • Pull block updates from Jens Axboe:

    - Series of merge handling cleanups (Baolin, Christoph)

    - Series of blk-throttle fixes and cleanups (Baolin)

    - Series cleaning up BDI, seperating the block device from the
    backing_dev_info (Christoph)

    - Removal of bdget() as a generic API (Christoph)

    - Removal of blkdev_get() as a generic API (Christoph)

    - Cleanup of is-partition checks (Christoph)

    - Series reworking disk revalidation (Christoph)

    - Series cleaning up bio flags (Christoph)

    - bio crypt fixes (Eric)

    - IO stats inflight tweak (Gabriel)

    - blk-mq tags fixes (Hannes)

    - Buffer invalidation fixes (Jan)

    - Allow soft limits for zone append (Johannes)

    - Shared tag set improvements (John, Kashyap)

    - Allow IOPRIO_CLASS_RT for CAP_SYS_NICE (Khazhismel)

    - DM no-wait support (Mike, Konstantin)

    - Request allocation improvements (Ming)

    - Allow md/dm/bcache to use IO stat helpers (Song)

    - Series improving blk-iocost (Tejun)

    - Various cleanups (Geert, Damien, Danny, Julia, Tetsuo, Tian, Wang,
    Xianting, Yang, Yufen, yangerkun)

    * tag 'block-5.10-2020-10-12' of git://git.kernel.dk/linux-block: (191 commits)
    block: fix uapi blkzoned.h comments
    blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue
    blk-mq: get rid of the dead flush handle code path
    block: get rid of unnecessary local variable
    block: fix comment and add lockdep assert
    blk-mq: use helper function to test hw stopped
    block: use helper function to test queue register
    block: remove redundant mq check
    block: invoke blk_mq_exit_sched no matter whether have .exit_sched
    percpu_ref: don't refer to ref->data if it isn't allocated
    block: ratelimit handle_bad_sector() message
    blk-throttle: Re-use the throtl_set_slice_end()
    blk-throttle: Open code __throtl_de/enqueue_tg()
    blk-throttle: Move service tree validation out of the throtl_rb_first()
    blk-throttle: Move the list operation after list validation
    blk-throttle: Fix IO hang for a corner case
    blk-throttle: Avoid tracking latency if low limit is invalid
    blk-throttle: Avoid getting the current time if tg->last_finish_time is 0
    blk-throttle: Remove a meaningless parameter for throtl_downgrade_state()
    block: Remove redundant 'return' statement
    ...

    Linus Torvalds
     

06 Oct, 2020

1 commit


28 Sep, 2020

1 commit

  • Hibernate and resume process submits individual IO requests for each page
    of the data, so use blk_plug to improve the batching of these requests.

    Testing this change with hibernate and resumes consistently shows merging
    of the IO requests and more than an order of magnitude improvement in
    hibernate and resume speed is observed.

    One hibernate and resume cycle for 16GB RAM out of 32GB in use takes
    around 21 minutes before the change, and 1 minutes after the change on
    a system with limited storage IOPS.

    Signed-off-by: Xiaoyi Chen
    Co-Developed-by: Anchal Agarwal
    Signed-off-by: Anchal Agarwal
    [ rjw: Subject and changelog edits, white space damage fixes ]
    Signed-off-by: Rafael J. Wysocki

    Xiaoyi Chen
     

24 Sep, 2020

3 commits


01 Sep, 2020

1 commit

  • The current notifiers have the following error handling pattern all
    over the place:

    int err, nr;

    err = __foo_notifier_call_chain(&chain, val_up, v, -1, &nr);
    if (err & NOTIFIER_STOP_MASK)
    __foo_notifier_call_chain(&chain, val_down, v, nr-1, NULL)

    And aside from the endless repetition thereof, it is broken. Consider
    blocking notifiers; both calls take and drop the rwsem, this means
    that the notifier list can change in between the two calls, making @nr
    meaningless.

    Fix this by replacing all the __foo_notifier_call_chain() functions
    with foo_notifier_call_chain_robust() that embeds the above pattern,
    but ensures it is inside a single lock region.

    Note: I switched atomic_notifier_call_chain_robust() to use
    the spinlock, since RCU cannot provide the guarantee
    required for the recovery.

    Note: software_resume() error handling was broken afaict.

    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Ingo Molnar
    Acked-by: Rafael J. Wysocki
    Link: https://lore.kernel.org/r/20200818135804.325626653@infradead.org

    Peter Zijlstra
     

24 Aug, 2020

1 commit

  • Replace the existing /* fall through */ comments and its variants with
    the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
    fall-through markings when it is the case.

    [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

12 Aug, 2020

1 commit

  • Pull libnvdimm updayes from Vishal Verma:
    "You'd normally receive this pull request from Dan Williams, but he's
    busy watching a newborn (Congrats Dan!), so I'm watching libnvdimm
    this cycle.

    This adds a new feature in libnvdimm - 'Runtime Firmware Activation',
    and a few small cleanups and fixes in libnvdimm and DAX. I'd
    originally intended to make separate topic-based pull requests - one
    for libnvdimm, and one for DAX, but some of the DAX material fell out
    since it wasn't quite ready.

    Summary:

    - add 'Runtime Firmware Activation' support for NVDIMMs that
    advertise the relevant capability

    - misc libnvdimm and DAX cleanups"

    * tag 'libnvdimm-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr
    libnvdimm/security: the 'security' attr never show 'overwrite' state
    libnvdimm/security: fix a typo
    ACPI: NFIT: Fix ARS zero-sized allocation
    dax: Fix incorrect argument passed to xas_set_err()
    ACPI: NFIT: Add runtime firmware activate support
    PM, libnvdimm: Add runtime firmware activation support
    libnvdimm: Convert to DEVICE_ATTR_ADMIN_RO()
    drivers/dax: Expand lock scope to cover the use of addresses
    fs/dax: Remove unused size parameter
    dax: print error message by pr_info() in __generic_fsdax_supported()
    driver-core: Introduce DEVICE_ATTR_ADMIN_{RO,RW}
    tools/testing/nvdimm: Emulate firmware activation commands
    tools/testing/nvdimm: Prepare nfit_ctl_test() for ND_CMD_CALL emulation
    tools/testing/nvdimm: Add command debug messages
    tools/testing/nvdimm: Cleanup dimm index passing
    ACPI: NFIT: Define runtime firmware activation commands
    ACPI: NFIT: Move bus_dsm_mask out of generic nvdimm_bus_descriptor
    libnvdimm: Validate command family indices

    Linus Torvalds
     

08 Aug, 2020

1 commit

  • In order to prepare for per-object slab memory accounting, convert
    NR_SLAB_RECLAIMABLE and NR_SLAB_UNRECLAIMABLE vmstat items to bytes.

    To make it obvious, rename them to NR_SLAB_RECLAIMABLE_B and
    NR_SLAB_UNRECLAIMABLE_B (similar to NR_KERNEL_STACK_KB).

    Internally global and per-node counters are stored in pages, however memcg
    and lruvec counters are stored in bytes. This scheme may look weird, but
    only for now. As soon as slab pages will be shared between multiple
    cgroups, global and node counters will reflect the total number of slab
    pages. However memcg and lruvec counters will be used for per-memcg slab
    memory tracking, which will take separate kernel objects in the account.
    Keeping global and node counters in pages helps to avoid additional
    overhead.

    The size of slab memory shouldn't exceed 4Gb on 32-bit machines, so it
    will fit into atomic_long_t we use for vmstats.

    Signed-off-by: Roman Gushchin
    Signed-off-by: Andrew Morton
    Reviewed-by: Shakeel Butt
    Acked-by: Johannes Weiner
    Acked-by: Vlastimil Babka
    Cc: Christoph Lameter
    Cc: Michal Hocko
    Cc: Tejun Heo
    Link: http://lkml.kernel.org/r/20200623174037.3951353-4-guro@fb.com
    Signed-off-by: Linus Torvalds

    Roman Gushchin
     

03 Aug, 2020

1 commit

  • * pm-sleep:
    PM: sleep: spread "const char *" correctness
    PM: hibernate: fix white space in a few places
    freezer: Add unsafe version of freezable_schedule_timeout_interruptible() for NFS
    PM: sleep: core: Emit changed uevent on wakeup_sysfs_add/remove

    * pm-domains:
    PM: domains: Restore comment indentation for generic_pm_domain.child_links
    PM: domains: Fix up terminology with parent/child

    * powercap:
    powercap: Add Power Limit4 support
    powercap: idle_inject: Replace play_idle() with play_idle_precise() in comments
    powercap: intel_rapl: add support for Sapphire Rapids

    * pm-tools:
    pm-graph v5.7 - important s2idle fixes
    cpupower: Replace HTTP links with HTTPS ones
    cpupower: Fix NULL but dereferenced coccicheck errors
    cpupower: Fix comparing pointer to 0 coccicheck warns

    Rafael J. Wysocki
     

29 Jul, 2020

1 commit

  • Abstract platform specific mechanics for nvdimm firmware activation
    behind a handful of generic ops. At the bus level ->activate_state()
    indicates the unified state (idle, busy, armed) of all DIMMs on the bus,
    and ->capability() indicates the system state expectations for activate.
    At the DIMM level ->activate_state() indicates the per-DIMM state,
    ->activate_result() indicates the outcome of the last activation
    attempt, and ->arm() attempts to transition the DIMM from 'idle' to
    'armed'.

    A new hibernate_quiet_exec() facility is added to support firmware
    activation in an OS defined system quiesce state. It leverages the fact
    that the hibernate-freeze state wants to assert that a memory
    hibernation snapshot can be taken. This is in contrast to a platform
    firmware defined quiesce state that may forcefully quiet the memory
    controller independent of whether an individual device-driver properly
    supports hibernate-freeze.

    The libnvdimm sysfs interface is extended to support detection of a
    firmware activate capability. The mechanism supports enumeration and
    triggering of firmware activate, optionally in the
    hibernate_quiet_exec() context.

    [rafael: hibernate_quiet_exec() proposal]
    [vishal: fix up sparse warning, grammar in Documentation/]

    Cc: Pavel Machek
    Cc: Ira Weiny
    Cc: Len Brown
    Cc: Jonathan Corbet
    Cc: Dave Jiang
    Cc: Vishal Verma
    Reported-by: kernel test robot
    Co-developed-by: "Rafael J. Wysocki"
    Signed-off-by: "Rafael J. Wysocki"
    Signed-off-by: Dan Williams
    Signed-off-by: Vishal Verma

    Dan Williams
     

15 Jul, 2020

2 commits


24 Jun, 2020

5 commits

  • Remove old function em_register_perf_domain which is no longer needed.
    There is em_dev_register_perf_domain that covers old use cases and new as
    well.

    Acked-by: Daniel Lezcano
    Acked-by: Quentin Perret
    Signed-off-by: Lukasz Luba
    Signed-off-by: Rafael J. Wysocki

    Lukasz Luba
     
  • Add support for other devices than CPUs. The registration function
    does not require a valid cpumask pointer and is ready to handle new
    devices. Some of the internal structures has been reorganized in order to
    keep consistent view (like removing per_cpu pd pointers).

    Signed-off-by: Lukasz Luba
    Signed-off-by: Rafael J. Wysocki

    Lukasz Luba
     
  • The Energy Model framework is going to support devices other that CPUs. In
    order to make this happen change the callback function and add pointer to
    a device as an argument.

    Update the related users to use new function and new callback from the
    Energy Model.

    Acked-by: Quentin Perret
    Signed-off-by: Lukasz Luba
    Acked-by: Daniel Lezcano
    Signed-off-by: Rafael J. Wysocki

    Lukasz Luba
     
  • Add now function in the Energy Model framework which is going to support
    new devices. This function will help in transition and make it smoother.
    For now it still checks if the cpumask is a valid pointer, which will be
    removed later when the new structures and infrastructure will be ready.

    Acked-by: Daniel Lezcano
    Acked-by: Quentin Perret
    Signed-off-by: Lukasz Luba
    Signed-off-by: Rafael J. Wysocki

    Lukasz Luba
     
  • The Energy Model uses concept of performance domain and capacity states in
    order to calculate power used by CPUs. Change naming convention from
    capacity to performance state would enable wider usage in future, e.g.
    upcoming support for other devices other than CPUs.

    Acked-by: Daniel Lezcano
    Acked-by: Quentin Perret
    Signed-off-by: Lukasz Luba
    Signed-off-by: Rafael J. Wysocki

    Lukasz Luba
     

14 Jun, 2020

1 commit

  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

11 Jun, 2020

1 commit

  • Pull more power management updates from Rafael Wysocki:
    "These are operating performance points (OPP) framework updates mostly,
    including support for interconnect bandwidth in the OPP core, plus a
    few cpufreq changes, including boost support in the CPPC cpufreq
    driver, an ACPI device power management fix and a hibernation code
    cleanup.

    Specifics:

    - Add support for interconnect bandwidth to the OPP core (Georgi
    Djakov, Saravana Kannan, Sibi Sankar, Viresh Kumar).

    - Add support for regulator enable/disable to the OPP core (Kamil
    Konieczny).

    - Add boost support to the CPPC cpufreq driver (Xiongfeng Wang).

    - Make the tegra186 cpufreq driver set the
    CPUFREQ_NEED_INITIAL_FREQ_CHECK flag (Mian Yousaf Kaukab).

    - Prevent the ACPI power management from using power resources with
    devices where the list of power resources for power state D0 (full
    power) is missing (Rafael Wysocki).

    - Annotate a hibernation-related function with __init (Christophe
    JAILLET)"

    * tag 'pm-5.8-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI: PM: Avoid using power resources if there are none for D0
    cpufreq: CPPC: add SW BOOST support
    cpufreq: change '.set_boost' to act on one policy
    PM: hibernate: Add __init annotation to swsusp_header_init()
    opp: Don't parse icc paths unnecessarily
    opp: Remove bandwidth votes when target_freq is zero
    opp: core: add regulators enable and disable
    opp: Reorder the code for !target_freq case
    opp: Expose bandwidth information via debugfs
    cpufreq: dt: Add support for interconnect bandwidth scaling
    opp: Update the bandwidth on OPP frequency changes
    opp: Add sanity checks in _read_opp_key()
    opp: Add support for parsing interconnect bandwidth
    cpufreq: tegra186: add CPUFREQ_NEED_INITIAL_FREQ_CHECK flag
    OPP: Add helpers for reading the binding properties
    dt-bindings: opp: Introduce opp-peak-kBps and opp-avg-kBps bindings

    Linus Torvalds
     

10 Jun, 2020

1 commit

  • Patch series "mm: consolidate definitions of page table accessors", v2.

    The low level page table accessors (pXY_index(), pXY_offset()) are
    duplicated across all architectures and sometimes more than once. For
    instance, we have 31 definition of pgd_offset() for 25 supported
    architectures.

    Most of these definitions are actually identical and typically it boils
    down to, e.g.

    static inline unsigned long pmd_index(unsigned long address)
    {
    return (address >> PMD_SHIFT) & (PTRS_PER_PMD - 1);
    }

    static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
    {
    return (pmd_t *)pud_page_vaddr(*pud) + pmd_index(address);
    }

    These definitions can be shared among 90% of the arches provided
    XYZ_SHIFT, PTRS_PER_XYZ and xyz_page_vaddr() are defined.

    For architectures that really need a custom version there is always
    possibility to override the generic version with the usual ifdefs magic.

    These patches introduce include/linux/pgtable.h that replaces
    include/asm-generic/pgtable.h and add the definitions of the page table
    accessors to the new header.

    This patch (of 12):

    The linux/mm.h header includes to allow inlining of the
    functions involving page table manipulations, e.g. pte_alloc() and
    pmd_alloc(). So, there is no point to explicitly include
    in the files that include .

    The include statements in such cases are remove with a simple loop:

    for f in $(git grep -l "include ") ; do
    sed -i -e '/include / d' $f
    done

    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Cc: Arnd Bergmann
    Cc: Borislav Petkov
    Cc: Brian Cain
    Cc: Catalin Marinas
    Cc: Chris Zankel
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Ungerer
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Ingo Molnar
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Matthew Wilcox
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Mike Rapoport
    Cc: Nick Hu
    Cc: Paul Walmsley
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Vincent Chen
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: http://lkml.kernel.org/r/20200514170327.31389-1-rppt@kernel.org
    Link: http://lkml.kernel.org/r/20200514170327.31389-2-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

08 Jun, 2020

1 commit

  • Pull tty/serial driver updates from Greg KH:
    "Here is the tty and serial driver updates for 5.8-rc1

    Nothing huge at all, just a lot of little serial driver fixes, updates
    for new devices and features, and other small things. Full details are
    in the shortlog.

    All of these have been in linux-next with no issues for a while"

    * tag 'tty-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (67 commits)
    tty: serial: qcom_geni_serial: Add 51.2MHz frequency support
    tty: serial: imx: clear Ageing Timer Interrupt in handler
    serial: 8250_fintek: Add F81966 Support
    sc16is7xx: Add flag to activate IrDA mode
    dt-bindings: sc16is7xx: Add flag to activate IrDA mode
    serial: 8250: Support rs485 bus termination GPIO
    serial: 8520_port: Fix function param documentation
    dt-bindings: serial: Add binding for rs485 bus termination GPIO
    vt: keyboard: avoid signed integer overflow in k_ascii
    serial: 8250: Enable 16550A variants by default on non-x86
    tty: hvc_console, fix crashes on parallel open/close
    serial: imx: Initialize lock for non-registered console
    sc16is7xx: Read the LSR register for basic device presence check
    sc16is7xx: Allow sharing the IRQ line
    sc16is7xx: Use threaded IRQ
    sc16is7xx: Always use falling edge IRQ
    tty: n_gsm: Fix bogus i++ in gsm_data_kick
    tty: n_gsm: Remove unnecessary test in gsm_print_packet()
    serial: stm32: add no_console_suspend support
    tty: serial: fsl_lpuart: Use __maybe_unused instead of #if CONFIG_PM_SLEEP
    ...

    Linus Torvalds
     

05 Jun, 2020

1 commit


27 May, 2020

1 commit

  • Hibernation via snapshot device requires write permission to the swap
    block device, the one that more often (but not necessarily) is used to
    store the hibernation image.

    With this patch, such permissions are granted iff:

    1) snapshot device config option is enabled
    2) swap partition is used as resume device

    In other circumstances the swap device is not writable from userspace.

    In order to achieve this, every write attempt to a swap device is
    checked against the device configured as part of the uswsusp API [0]
    using a pointer to the inode struct in memory. If the swap device being
    written was not configured for resuming, the write request is denied.

    NOTE: this implementation works only for swap block devices, where the
    inode configured by swapon (which sets S_SWAPFILE) is the same used
    by SNAPSHOT_SET_SWAP_AREA.

    In case of swap file, SNAPSHOT_SET_SWAP_AREA indeed receives the inode
    of the block device containing the filesystem where the swap file is
    located (+ offset in it) which is never passed to swapon and then has
    not set S_SWAPFILE.

    As result, the swap file itself (as a file) has never an option to be
    written from userspace. Instead it remains writable if accessed directly
    from the containing block device, which is always writeable from root.

    [0] Documentation/power/userland-swsusp.rst

    v2:
    - rename is_hibernate_snapshot_dev() to is_hibernate_resume_dev()
    - fix description so to correctly refer to the resume device

    Signed-off-by: Domenico Andreoli
    Acked-by: Darrick J. Wong
    Signed-off-by: Rafael J. Wysocki

    Domenico Andreoli
     

19 May, 2020

2 commits


15 May, 2020

1 commit

  • With earlier commits, the API no longer discards the const-ness of the
    sysrq_key_op. As such we can add the notation.

    Cc: Greg Kroah-Hartman
    Cc: Jiri Slaby
    Cc: linux-kernel@vger.kernel.org
    Cc: "Rafael J. Wysocki"
    Cc: Len Brown
    Cc: linux-pm@vger.kernel.org
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Emil Velikov
    Link: https://lore.kernel.org/r/20200513214351.2138580-10-emil.l.velikov@gmail.com
    Signed-off-by: Greg Kroah-Hartman

    Emil Velikov
     

27 Apr, 2020

1 commit

  • Currently the kernel threads are not frozen in software_resume(), so
    between dpm_suspend_start(PMSG_QUIESCE) and resume_target_kernel(),
    system_freezable_power_efficient_wq can still try to submit SCSI
    commands and this can cause a panic since the low level SCSI driver
    (e.g. hv_storvsc) has quiesced the SCSI adapter and can not accept
    any SCSI commands: https://lkml.org/lkml/2020/4/10/47

    At first I posted a fix (https://lkml.org/lkml/2020/4/21/1318) trying
    to resolve the issue from hv_storvsc, but with the help of
    Bart Van Assche, I realized it's better to fix software_resume(),
    since this looks like a generic issue, not only pertaining to SCSI.

    Cc: All applicable
    Signed-off-by: Dexuan Cui
    Signed-off-by: Rafael J. Wysocki

    Dexuan Cui
     

07 Apr, 2020

3 commits

  • Use in_compat_syscall to copy directly from the 32-bit ABI structure.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Rafael J. Wysocki

    Christoph Hellwig
     
  • Move the handling of the SNAPSHOT_SET_SWAP_AREA ioctl from the main
    ioctl helper into a helper function.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Rafael J. Wysocki

    Christoph Hellwig
     
  • Pull more power management updates from Rafael Wysocki:
    "Additional power management updates.

    These fix a corner-case suspend-to-idle wakeup issue on systems where
    the ACPI SCI is shared with another wakeup source, add a kernel
    command line option to set pm_debug_messages via the kernel command
    line, add a document desctibing system-wide suspend and resume code
    flows, modify cpufreq Kconfig to choose schedutil as the preferred
    governor by default in a couple of cases and do some assorted
    cleanups.

    Specifics:

    - Fix corner-case suspend-to-idle wakeup issue on systems where the
    ACPI SCI is shared with another wakeup source (Hans de Goede).

    - Add document describing system-wide suspend and resume code flows
    to the admin guide (Rafael Wysocki).

    - Add kernel command line option to set pm_debug_messages (Chen Yu).

    - Choose schedutil as the preferred scaling governor by default on
    ARM big.LITTLE systems and on x86 systems using the intel_pstate
    driver in the passive mode (Linus Walleij, Rafael Wysocki).

    - Drop racy and redundant checks from the PM core's device_prepare()
    routine (Rafael Wysocki).

    - Make resume from hibernation take the hibernation_restore() return
    value into account (Dexuan Cui)"

    * tag 'pm-5.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    platform/x86: intel_int0002_vgpio: Use acpi_register_wakeup_handler()
    ACPI: PM: Add acpi_[un]register_wakeup_handler()
    Documentation: PM: sleep: Document system-wide suspend code flows
    cpufreq: Select schedutil when using big.LITTLE
    PM: sleep: Add pm_debug_messages kernel command line option
    PM: sleep: core: Drop racy and redundant checks from device_prepare()
    PM: hibernate: Propagate the return value of hibernation_restore()
    cpufreq: intel_pstate: Select schedutil as the default governor

    Linus Torvalds
     

05 Apr, 2020

1 commit

  • Pull s390 updates from Vasily Gorbik:

    - Update maintainers. Niklas Schnelle takes over zpci and Vineeth
    Vijayan common io code.

    - Extend cpuinfo to include topology information.

    - Add new extended counters for IBM z15 and sampling buffer allocation
    rework in perf code.

    - Add control over zeroing out memory during system restart.

    - CCA protected key block version 2 support and other
    fixes/improvements in crypto code.

    - Convert to new fallthrough; annotations.

    - Replace zero-length arrays with flexible-arrays.

    - QDIO debugfs and other small improvements.

    - Drop 2-level paging support optimization for compat tasks. Varios mm
    cleanups.

    - Remove broken and unused hibernate / power management support.

    - Remove fake numa support which does not bring any benefits.

    - Exclude offline CPUs from CPU topology masks to be more consistent
    with other architectures.

    - Prevent last branching instruction address leaking to userspace.

    - Other small various fixes and improvements all over the code.

    * tag 's390-5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (57 commits)
    s390/mm: cleanup init_new_context() callback
    s390/mm: cleanup virtual memory constants usage
    s390/mm: remove page table downgrade support
    s390/qdio: set qdio_irq->cdev at allocation time
    s390/qdio: remove unused function declarations
    s390/ccwgroup: remove pm support
    s390/ap: remove power management code from ap bus and drivers
    s390/zcrypt: use kvmalloc instead of kmalloc for 256k alloc
    s390/mm: cleanup arch_get_unmapped_area() and friends
    s390/ism: remove pm support
    s390/cio: use fallthrough;
    s390/vfio: use fallthrough;
    s390/zcrypt: use fallthrough;
    s390: use fallthrough;
    s390/cpum_sf: Fix wrong page count in error message
    s390/diag: fix display of diagnose call statistics
    s390/ap: Remove ap device suspend and resume callbacks
    s390/pci: Improve handling of unset UID
    s390/pci: Fix zpci_alloc_domain() over allocation
    s390/qdio: pass ISC as parameter to chsc_sadc()
    ...

    Linus Torvalds
     

04 Apr, 2020

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the big set of char/misc/other driver patches for 5.7-rc1.

    Lots of things in here, and it's later than expected due to some
    reverts to resolve some reported issues. All is now clean with no
    reported problems in linux-next.

    Included in here is:
    - interconnect updates
    - mei driver updates
    - uio updates
    - nvmem driver updates
    - soundwire updates
    - binderfs updates
    - coresight updates
    - habanalabs updates
    - mhi new bus type and core
    - extcon driver updates
    - some Kconfig cleanups
    - other small misc driver cleanups and updates

    As mentioned, all have been in linux-next for a while, and with the
    last two reverts, all is calm and good"

    * tag 'char-misc-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (174 commits)
    Revert "driver core: platform: Initialize dma_parms for platform devices"
    Revert "amba: Initialize dma_parms for amba devices"
    amba: Initialize dma_parms for amba devices
    driver core: platform: Initialize dma_parms for platform devices
    bus: mhi: core: Drop the references to mhi_dev in mhi_destroy_device()
    bus: mhi: core: Initialize bhie field in mhi_cntrl for RDDM capture
    bus: mhi: core: Add support for reading MHI info from device
    misc: rtsx: set correct pcr_ops for rts522A
    speakup: misc: Use dynamic minor numbers for speakup devices
    mei: me: add cedar fork device ids
    coresight: do not use the BIT() macro in the UAPI header
    Documentation: provide IBM contacts for embargoed hardware
    nvmem: core: remove nvmem_sysfs_get_groups()
    nvmem: core: use is_bin_visible for permissions
    nvmem: core: use device_register and device_unregister
    nvmem: core: add root_only member to nvmem device struct
    extcon: axp288: Add wakeup support
    extcon: Mark extcon_get_edev_name() function as exported symbol
    extcon: palmas: Hide error messages if gpio returns -EPROBE_DEFER
    dt-bindings: extcon: usbc-cros-ec: convert extcon-usbc-cros-ec.txt to yaml format
    ...

    Linus Torvalds
     

02 Apr, 2020

1 commit

  • Debug messages from the system suspend/hibernation infrastructure
    are disabled by default, and can only be enabled after the system
    has boot up via /sys/power/pm_debug_messages.

    This makes the hibernation resume hard to track as it involves system
    boot up across hibernation. There's no chance for software_resume()
    to track the resume process, for example.

    Add a kernel command line option to set pm_debug_messages during
    boot up.

    Signed-off-by: Chen Yu
    [ rjw: Subject & changelog ]
    Signed-off-by: Rafael J. Wysocki

    Chen Yu
     

01 Apr, 2020

1 commit


30 Mar, 2020

1 commit

  • * pm-core:
    PM: runtime: Add pm_runtime_get_if_active()

    * pm-sleep:
    PM: sleep: wakeup: Skip wakeup_source_sysfs_remove() if device is not there
    PM / hibernate: Remove unnecessary compat ioctl overrides
    PM: hibernate: fix docs for ioctls that return loff_t via pointer
    PM: sleep: wakeup: Use built-in RCU list checking
    PM: sleep: core: Use built-in RCU list checking

    * pm-acpi:
    ACPI: PM: s2idle: Refine active GPEs check
    ACPICA: Allow acpi_any_gpe_status_set() to skip one GPE
    ACPI: PM: s2idle: Fix comment in acpi_s2idle_prepare_late()

    * pm-domains:
    cpuidle: psci: Split psci_dt_cpu_init_idle()
    PM / Domains: Allow no domain-idle-states DT property in genpd when parsing

    Rafael J. Wysocki