13 Nov, 2020

3 commits

  • …cm/fs/fscrypt/fscrypt") into android-mainline

    Steps on the way to 5.10-rc4

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: I8554ba37704bee02192ff6117d4909fde568fca2

    Greg Kroah-Hartman
     
  • Pull networking fixes from Jakub Kicinski:
    "Current release - regressions:

    - arm64: dts: fsl-ls1028a-kontron-sl28: specify in-band mode for
    ENETC

    Current release - bugs in new features:

    - mptcp: provide rmem[0] limit offset to fix oops

    Previous release - regressions:

    - IPv6: Set SIT tunnel hard_header_len to zero to fix path MTU
    calculations

    - lan743x: correctly handle chips with internal PHY

    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE

    - mlx5e: Fix VXLAN port table synchronization after function reload

    Previous release - always broken:

    - bpf: Zero-fill re-used per-cpu map element

    - fix out-of-order UDP packets when forwarding with UDP GSO fraglists
    turned on:
    - fix UDP header access on Fast/frag0 UDP GRO
    - fix IP header access and skb lookup on Fast/frag0 UDP GRO

    - ethtool: netlink: add missing netdev_features_change() call

    - net: Update window_clamp if SOCK_RCVBUF is set

    - igc: Fix returning wrong statistics

    - ch_ktls: fix multiple leaks and corner cases in Chelsio TLS offload

    - tunnels: Fix off-by-one in lower MTU bounds for ICMP/ICMPv6 replies

    - r8169: disable hw csum for short packets on all chip versions

    - vrf: Fix fast path output packet handling with async Netfilter
    rules"

    * tag 'net-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (65 commits)
    lan743x: fix use of uninitialized variable
    net: udp: fix IP header access and skb lookup on Fast/frag0 UDP GRO
    net: udp: fix UDP header access on Fast/frag0 UDP GRO
    devlink: Avoid overwriting port attributes of registered port
    vrf: Fix fast path output packet handling with async Netfilter rules
    cosa: Add missing kfree in error path of cosa_write
    net: switch to the kernel.org patchwork instance
    ch_ktls: stop the txq if reaches threshold
    ch_ktls: tcb update fails sometimes
    ch_ktls/cxgb4: handle partial tag alone SKBs
    ch_ktls: don't free skb before sending FIN
    ch_ktls: packet handling prior to start marker
    ch_ktls: Correction in middle record handling
    ch_ktls: missing handling of header alone
    ch_ktls: Correction in trimmed_len calculation
    cxgb4/ch_ktls: creating skbs causes panic
    ch_ktls: Update cheksum information
    ch_ktls: Correction in finding correct length
    cxgb4/ch_ktls: decrypted bit is not enough
    net/x25: Fix null-ptr-deref in x25_connect
    ...

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "Make the intel_pstate driver behave as expected when it operates in
    the passive mode with HWP enabled and the 'powersave' governor on top
    of it"

    * tag 'pm-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: intel_pstate: Take CPUFREQ_GOV_STRICT_TARGET into account
    cpufreq: Add strict_target to struct cpufreq_policy
    cpufreq: Introduce CPUFREQ_GOV_STRICT_TARGET
    cpufreq: Introduce governor flags

    Linus Torvalds
     

12 Nov, 2020

3 commits


11 Nov, 2020

11 commits

  • Create a vendor hook for jiffies updates by the
    tick_do_timer_cpu.

    Bug: 148928265
    Change-Id: Ia442e20d446b8ce4f2b3f2be76655e72919c76eb
    Signed-off-by: Amir Vajid

    Amir Vajid
     
  • Add vendor hook for skipping console flush in cpu hotplug.

    Bug: 165340180
    Change-Id: I167e1595bbb50e57371bfabfde638624761d5f8a
    Signed-off-by: Prasad Sodagudi

    Prasad Sodagudi
     
  • During the cpu hot plug stress testing, couple of messages
    continuous flooding on to the console is causing timers
    migration delay.

    Bug: 165340180
    Change-Id: I18f96613242a7a821ff707bcdaac794ccefd0bba
    Signed-off-by: Prasad Sodagudi

    Prasad Sodagudi
     
  • Tasklets are supposed to finish their work quickly and
    should not block the current running process, but it is not
    guaranteed that. Currently softirq_entry/exit can be used to
    know total tasklets execution time, but not helpful to track
    individual tasklet's execution time. With that we can't find
    any culprit tasklet function, which is taking more time.

    Add {hi}-tasklet_entry/exit trace point support to track
    individual tasklet execution.

    Bug: 168521633
    Change-Id: I3496d15f64d020916774e673ccb4a8116ea2f2c9
    Signed-off-by: Lingutla Chandrasekhar
    [elavila: Port to mainline]
    Signed-off-by: J. Avila

    Lingutla Chandrasekhar
     
  • Ksfotirqd is a normal priority CFS task. It can experience higher
    scheduling latency under heavy load conditions. Currently once
    asynchronous softirq processing is deferred to ksoftirqd, softirqs
    are not processed further until ksoftirqd task gets a chance to run.
    High latencies for softirqs like TIMER, HI TASKLET is not acceptable.

    So revert 'commit 4cd13c21b207 ("softirq: Let ksoftirqd do its job")'.

    Bug: 168521633
    Change-Id: I38a1a88b5f42dd534c65d739dbb7e4321a7904db
    Signed-off-by: Lingutla Chandrasekhar
    [satyap@codeaurora.org: Fix trivial merge conflicts]
    Signed-off-by: Satya Durga Srinivasu Prabhala
    [elavila: Port to mainline]
    Signed-off-by: J. Avila

    Lingutla Chandrasekhar
     
  • This reverts commit 3c53776e29f81719efcf8f7a6e30cdf753bee94d because it
    makes HI_SOFTIRQ and TASKLET_SOFTIRQ run immediately i.e. not get
    deferred to ksfotirqd. The commit text calls out that this is a stopgap
    until a better solution is deviced and that it should have included
    TIMER_SOFTIRQ as well, but chose not to.

    Patch ebc7b75d772647813cdaf085c7f5adf3c90b033b from Qualcomm is a more
    comprehensive solution which defers long running tasklets to ksfotirqd
    when a rt task is interrupted.

    We cannot use both these together as they conflict; e.g. the original
    makes TASKLET softirq run immediately while the Qualcomm one defers it
    if rt gets interrupted. Choose to use the Qualcomm one.

    Bug: 168521633
    Change-Id: I4af64cd7e2c4291dda5f503bf2d74ede459a76c6
    Signed-off-by: Satya Durga Srinivasu Prabhala
    [elavila: port to mainline, resolve conflicts, add commit text]
    Signed-off-by: J. Avila

    Satya Durga Srinivasu Prabhala
     
  • Defer the softirq processing to ksoftirqd if a RT task is running
    or queued on the current CPU. This complements the RT task placement
    algorithm which tries to find a CPU that is not currently busy with
    softirqs.

    Currently NET_TX, NET_RX, BLOCK and TASKLET softirqs are only deferred
    as they can potentially run for long time.

    Bug: 168521633
    Change-Id: Id7665244af6bbd5a96d9e591cf26154e9eaa860c
    Signed-off-by: Pavankumar Kondeti
    [satyap@codeaurora.org: trivial merge conflict resolution.]
    Signed-off-by: Satya Durga Srinivasu Prabhala
    [elavila: Port to mainline, squash with bugfix]
    Signed-off-by: J. Avila

    Pavankumar Kondeti
     
  • The scheduling change to avoid putting RT threads on cores that
    are handling softint's was catching cases where there was no reason
    to believe the softint would take a long time, resulting in unnecessary
    migration overhead. This patch reduces the migration to cases where
    the core has a softint that is actually likely to take a long time,
    as opposed to the RCU, SCHED, and TIMER softints that are rather quick.

    Bug: 31752786
    Bug: 168521633
    Change-Id: Ib4e179f1e15c736b2fdba31070494e357e9fbbe2
    Signed-off-by: John Dias
    [elavila: Amend commit text for AOSP, port to mainline]
    Signed-off-by: J. Avila

    John Dias
     
  • In certain audio use cases, scheduling RT threads on cores that are
    handling softirqs can lead to glitches. Prevent this behavior.

    Bug: 31501544
    Bug: 168521633
    Change-Id: I99dd7aaa12c11270b28dbabea484bcc8fb8ba0c1
    Signed-off-by: John Dias
    [elavila: Port to mainline, amend commit text]
    Signed-off-by: J. Avila

    John Dias
     
  • Pull core dump fix from Al Viro:
    "Fix for multithreaded coredump playing fast and loose with getting
    registers of secondary threads; if a secondary gets caught in the
    middle of exit(2), the conditition it will be stopped in for dumper to
    examine might be unusual enough for things to go wrong.

    Quite a few architectures are fine with that, but some are not."

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    don't dump the threads that had been already exiting when zapped.

    Linus Torvalds
     
  • A new cpufreq governor flag will be added subsequently, so replace
    the bool dynamic_switching fleid in struct cpufreq_governor with a
    flags field and introduce CPUFREQ_GOV_DYNAMIC_SWITCHING to set for
    the "dynamic switching" governors instead of it.

    No intentional functional impact.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Viresh Kumar

    Rafael J. Wysocki
     

09 Nov, 2020

6 commits

  • Linux 5.10-rc3

    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I7884051ea7b86204b2685b51462368e122ad0772

    Greg Kroah-Hartman
     
  • current->group_leader->exit_signal may change during copy_process() if
    current->real_parent exits.

    Move the assignment inside tasklist_lock to avoid the race.

    Signed-off-by: Eddy Wu
    Acked-by: Oleg Nesterov
    Signed-off-by: Linus Torvalds

    Eddy Wu
     
  • Pull perf fix from Thomas Gleixner:
    "A single fix for the perf core plugging a memory leak in the address
    filter parser"

    * tag 'perf-urgent-2020-11-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/core: Fix a memory leak in perf_event_parse_addr_filter()

    Linus Torvalds
     
  • Pull futex fix from Thomas Gleixner:
    "A single fix for the futex code where an intermediate state in the
    underlying RT mutex was not handled correctly and triggering a BUG()
    instead of treating it as another variant of retry condition"

    * tag 'locking-urgent-2020-11-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    futex: Handle transient "ownerless" rtmutex state correctly

    Linus Torvalds
     
  • Pull irq fixes from Thomas Gleixner:
    "A set of fixes for interrupt chip drivers:

    - Fix the fallout of the IPI as interrupt conversion in Kconfig and
    the BCM2836 interrupt chip driver

    - Fixes for interrupt affinity setting and the handling of
    hierarchical irq domains in the SiFive PLIC driver

    - Make the unmapped event handling in the TI SCI driver work
    correctly

    - A few minor fixes and cleanups in various chip drivers and Kconfig"

    * tag 'irq-urgent-2020-11-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    dt-bindings: irqchip: ti, sci-inta: Fix diagram indentation for unmapped events
    irqchip/ti-sci-inta: Add support for unmapped event handling
    dt-bindings: irqchip: ti, sci-inta: Update for unmapped event handling
    irqchip/renesas-intc-irqpin: Merge irlm_bit and needs_irlm
    irqchip/sifive-plic: Fix chip_data access within a hierarchy
    irqchip/sifive-plic: Fix broken irq_set_affinity() callback
    irqchip/stm32-exti: Add all LP timer exti direct events support
    irqchip/bcm2836: Fix missing __init annotation
    irqchip/mips: Drop selection of IRQ_DOMAIN_HIERARCHY
    irqchip/mst: Make mst_intc_of_init static
    irqchip/mst: MST_IRQ should depend on ARCH_MEDIATEK or ARCH_MSTARV7
    genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY

    Linus Torvalds
     
  • Pull entry code fix from Thomas Gleixner:
    "A single fix for the generic entry code to correct the wrong
    assumption that the lockdep interrupt state needs not to be
    established before calling the RCU check"

    * tag 'core-urgent-2020-11-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    entry: Fix the incorrect ordering of lockdep and RCU check

    Linus Torvalds
     

08 Nov, 2020

1 commit

  • Gratian managed to trigger the BUG_ON(!newowner) in fixup_pi_state_owner().
    This is one possible chain of events leading to this:

    Task Prio Operation
    T1 120 lock(F)
    T2 120 lock(F) -> blocks (top waiter)
    T3 50 (RT) lock(F) -> boosts T1 and blocks (new top waiter)
    XX timeout/ -> wakes T2
    signal
    T1 50 unlock(F) -> wakes T3 (rtmutex->owner == NULL, waiter bit is set)
    T2 120 cleanup -> try_to_take_mutex() fails because T3 is the top waiter
    and the lower priority T2 cannot steal the lock.
    -> fixup_pi_state_owner() sees newowner == NULL -> BUG_ON()

    The comment states that this is invalid and rt_mutex_real_owner() must
    return a non NULL owner when the trylock failed, but in case of a queued
    and woken up waiter rt_mutex_real_owner() == NULL is a valid transient
    state. The higher priority waiter has simply not yet managed to take over
    the rtmutex.

    The BUG_ON() is therefore wrong and this is just another retry condition in
    fixup_pi_state_owner().

    Drop the locks, so that T3 can make progress, and then try the fixup again.

    Gratian provided a great analysis, traces and a reproducer. The analysis is
    to the point, but it confused the hell out of that tglx dude who had to
    page in all the futex horrors again. Condensed version is above.

    [ tglx: Wrote comment and changelog ]

    Fixes: c1e2f0eaf015 ("futex: Avoid violating the 10th rule of futex")
    Reported-by: Gratian Crisan
    Signed-off-by: Mike Galbraith
    Signed-off-by: Thomas Gleixner
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/87a6w6x7bb.fsf@ni.com
    Link: https://lore.kernel.org/r/87sg9pkvf7.fsf@nanos.tec.linutronix.de

    Mike Galbraith
     

07 Nov, 2020

3 commits

  • As shown through runtime testing, the "filename" allocation is not
    always freed in perf_event_parse_addr_filter().

    There are three possible ways that this could happen:

    - It could be allocated twice on subsequent iterations through the loop,
    - or leaked on the success path,
    - or on the failure path.

    Clean up the code flow to make it obvious that 'filename' is always
    freed in the reallocation path and in the two return paths as well.

    We rely on the fact that kfree(NULL) is NOP and filename is initialized
    with NULL.

    This fixes the leak. No other side effects expected.

    [ Dan Carpenter: cleaned up the code flow & added a changelog. ]
    [ Ingo Molnar: updated the changelog some more. ]

    Fixes: 375637bc5249 ("perf/core: Introduce address range filtering")
    Signed-off-by: "kiyin(尹亮)"
    Signed-off-by: Dan Carpenter
    Signed-off-by: Ingo Molnar
    Cc: "Srivatsa S. Bhat"
    Cc: Anthony Liguori
    --
    kernel/events/core.c | 12 +++++-------
    1 file changed, 5 insertions(+), 7 deletions(-)

    kiyin(尹亮)
     
  • Alexei Starovoitov says:

    ====================
    pull-request: bpf 2020-11-06

    1) Pre-allocated per-cpu hashmap needs to zero-fill reused element, from David.

    2) Tighten bpf_lsm function check, from KP.

    3) Fix bpftool attaching to flow dissector, from Lorenz.

    4) Use -fno-gcse for the whole kernel/bpf/core.c instead of function attribute, from Ard.

    * git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
    bpf: Update verification logic for LSM programs
    bpf: Zero-fill re-used per-cpu map element
    bpf: BPF_PRELOAD depends on BPF_SYSCALL
    tools/bpftool: Fix attaching flow dissector
    libbpf: Fix possible use after free in xsk_socket__delete
    libbpf: Fix null dereference in xsk_socket__delete
    libbpf, hashmap: Fix undefined behavior in hash_bits
    bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
    tools, bpftool: Remove two unused variables.
    tools, bpftool: Avoid array index warnings.
    xsk: Fix possible memory leak at socket close
    bpf: Add struct bpf_redir_neigh forward declaration to BPF helper defs
    samples/bpf: Set rlimit for memlock to infinity in all samples
    bpf: Fix -Wshadow warnings
    selftest/bpf: Fix profiler test using CO-RE relocation for enums
    ====================

    Link: https://lore.kernel.org/r/20201106221759.24143-1-alexei.starovoitov@gmail.com
    Signed-off-by: Jakub Kicinski

    Jakub Kicinski
     
  • The current logic checks if the name of the BTF type passed in
    attach_btf_id starts with "bpf_lsm_", this is not sufficient as it also
    allows attachment to non-LSM hooks like the very function that performs
    this check, i.e. bpf_lsm_verify_prog.

    In order to ensure that this verification logic allows attachment to
    only LSM hooks, the LSM_HOOK definitions in lsm_hook_defs.h are used to
    generate a BTF_ID set. Upon verification, the attach_btf_id of the
    program being attached is checked for presence in this set.

    Fixes: 9e4e01dfd325 ("bpf: lsm: Implement attach, detach and execution")
    Signed-off-by: KP Singh
    Signed-off-by: Alexei Starovoitov
    Link: https://lore.kernel.org/bpf/20201105230651.2621917-1-kpsingh@chromium.org

    KP Singh
     

06 Nov, 2020

8 commits

  • …it.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest") into android-mainline

    Steps on the way to 5.10-rc3

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: I57f80255bf5d396e92a54807a516cc41cf07be61

    Greg Kroah-Hartman
     
  • …rnel.org/pub/scm/linux/kernel/git/acme/linux") into android-mainline

    Steps on the way to 5.10-rc3

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: Ia09418a96a25f6c602af953db5d3258e032c0f30

    Greg Kroah-Hartman
     
  • Zero-fill element values for all other cpus than current, just as
    when not using prealloc. This is the only way the bpf program can
    ensure known initial values for all cpus ('onallcpus' cannot be
    set when coming from the bpf program).

    The scenario is: bpf program inserts some elements in a per-cpu
    map, then deletes some (or userspace does). When later adding
    new elements using bpf_map_update_elem(), the bpf program can
    only set the value of the new elements for the current cpu.
    When prealloc is enabled, previously deleted elements are re-used.
    Without the fix, values for other cpus remain whatever they were
    when the re-used entry was previously freed.

    A selftest is added to validate correct operation in above
    scenario as well as in case of LRU per-cpu map element re-use.

    Fixes: 6c9059817432 ("bpf: pre-allocate hash map elements")
    Signed-off-by: David Verbeiren
    Signed-off-by: Alexei Starovoitov
    Acked-by: Matthieu Baerts
    Acked-by: Andrii Nakryiko
    Link: https://lore.kernel.org/bpf/20201104112332.15191-1-david.verbeiren@tessares.net

    David Verbeiren
     
  • Fix build error when BPF_SYSCALL is not set/enabled but BPF_PRELOAD is
    by making BPF_PRELOAD depend on BPF_SYSCALL.

    ERROR: modpost: "bpf_preload_ops" [kernel/bpf/preload/bpf_preload.ko] undefined!

    Reported-by: kernel test robot
    Reported-by: Randy Dunlap
    Signed-off-by: Randy Dunlap
    Signed-off-by: Alexei Starovoitov
    Link: https://lore.kernel.org/bpf/20201105195109.26232-1-rdunlap@infradead.org

    Randy Dunlap
     
  • Allow modules to call printk_deferred().

    Bug: 172264047
    Change-Id: Icf2daaa3c990519fb0ee048608a15a9f0b4fdf65
    Signed-off-by: Sai Harshini Nimmala

    Sai Harshini Nimmala
     
  • Create a trace hook when RT tasks are throttled. This allows
    vendors to debug long RT runs.

    Bug: 172264047
    Change-Id: I534959f8e8d714463aac2f9f1c5627d2e735f543
    Signed-off-by: Sai Harshini Nimmala

    Sai Harshini Nimmala
     
  • Pull tracing fixes from Steven Rostedt:

    - Fix off-by-one error in retrieving the context buffer for
    trace_printk()

    - Fix off-by-one error in stack nesting limit

    - Fix recursion to not make all NMI code false positive as recursing

    - Stop losing events in function tracing when transitioning between irq
    context

    - Stop losing events in ring buffer when transitioning between irq
    context

    - Fix return code of error pointer in parse_synth_field() to prevent
    NULL pointer dereference.

    - Fix false positive of NMI recursion in kprobe event handling

    * tag 'trace-v5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    kprobes: Tell lockdep about kprobe nesting
    tracing: Make -ENOMEM the default error for parse_synth_field()
    ring-buffer: Fix recursion protection transitions between interrupt context
    tracing: Fix the checking of stackidx in __ftrace_trace_stack
    ftrace: Handle tracing when switching between context
    ftrace: Fix recursion check for NMI test
    tracing: Fix out of bounds write in get_trace_buf

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "These fix the device links support in runtime PM, correct mistakes in
    the cpuidle documentation, fix the handling of policy limits changes
    in the schedutil cpufreq governor, fix assorted issues in the OPP
    (operating performance points) framework and make one janitorial
    change.

    Specifics:

    - Unify the handling of managed and stateless device links in the
    runtime PM framework and prevent runtime PM references to devices
    from being leaked after device link removal (Rafael Wysocki).

    - Fix two mistakes in the cpuidle documentation (Julia Lawall).

    - Prevent the schedutil cpufreq governor from missing policy limits
    updates in some cases (Viresh Kumar).

    - Prevent static OPPs from being dropped by mistake (Viresh Kumar).

    - Prevent helper function in the OPP framework from returning
    prematurely (Viresh Kumar).

    - Prevent opp_table_lock from being held too long during removal of
    OPP tables with no more active references (Viresh Kumar).

    - Drop redundant semicolon from the Intel RAPL power capping driver
    (Tom Rix)"

    * tag 'pm-5.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    PM: runtime: Resume the device earlier in __device_release_driver()
    PM: runtime: Drop pm_runtime_clean_up_links()
    PM: runtime: Drop runtime PM references to supplier on link removal
    powercap/intel_rapl: remove unneeded semicolon
    Documentation: PM: cpuidle: correct path name
    Documentation: PM: cpuidle: correct typo
    cpufreq: schedutil: Don't skip freq update if need_freq_update is set
    opp: Reduce the size of critical section in _opp_table_kref_release()
    opp: Fix early exit from dev_pm_opp_register_set_opp_helper()
    opp: Don't always remove static OPPs in _of_add_opp_table_v1()

    Linus Torvalds
     

05 Nov, 2020

1 commit

  • When an exception/interrupt hits kernel space and the kernel is not
    currently in the idle task then RCU must be watching.

    irqentry_enter() validates this via rcu_irq_enter_check_tick(), which in
    turn invokes lockdep when taking a lock. But at that point lockdep does not
    yet know about the fact that interrupts have been disabled by the CPU,
    which triggers a lockdep splat complaining about inconsistent state.

    Invoking trace_hardirqs_off() before rcu_irq_enter_check_tick() defeats the
    point of rcu_irq_enter_check_tick() because trace_hardirqs_off() uses RCU.

    So use the same sequence as for the idle case and tell lockdep about the
    irq state change first, invoke the RCU check and then do the lockdep and
    tracer update.

    Fixes: a5497bab5f72 ("entry: Provide generic interrupt entry/exit code")
    Reported-by: Mark Rutland
    Signed-off-by: Thomas Gleixner
    Tested-by: Mark Rutland
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/87y2jhl19s.fsf@nanos.tec.linutronix.de

    Thomas Gleixner
     

04 Nov, 2020

2 commits

  • Since the kprobe handlers have protection that prohibits other handlers from
    executing in other contexts (like if an NMI comes in while processing a
    kprobe, and executes the same kprobe, it will get fail with a "busy"
    return). Lockdep is unaware of this protection. Use lockdep's nesting api to
    differentiate between locks taken in INT3 context and other context to
    suppress the false warnings.

    Link: https://lore.kernel.org/r/20201102160234.fa0ae70915ad9e2b21c08b85@kernel.org

    Cc: Peter Zijlstra
    Acked-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • Export dma_contiguous_default_area so dev_get_cma_area() can be called
    from a module.

    This allows the CMA dma-buf heap to be configured and built as a module.

    Signed-off-by: John Stultz
    Change-Id: I8ae944c147ff83dcd8d42a39efa6769dae4039b7
    Bug: 155218010
    Link: https://lore.kernel.org/lkml/20191025234834.28214-2-john.stultz@linaro.org/
    Signed-off-by: Hridya Valsaraju

    John Stultz
     

03 Nov, 2020

2 commits

  • parse_synth_field() returns a pointer and requires that errors get
    surrounded by ERR_PTR(). The ret variable is initialized to zero, but should
    never be used as zero, and if it is, it could cause a false return code and
    produce a NULL pointer dereference. It makes no sense to set ret to zero.

    Set ret to -ENOMEM (the most common error case), and have any other errors
    set it to something else. This removes the need to initialize ret on *every*
    error branch.

    Fixes: 761a8c58db6b ("tracing, synthetic events: Replace buggy strcat() with seq_buf operations")
    Reported-by: Dan Carpenter
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • The recursion protection of the ring buffer depends on preempt_count() to be
    correct. But it is possible that the ring buffer gets called after an
    interrupt comes in but before it updates the preempt_count(). This will
    trigger a false positive in the recursion code.

    Use the same trick from the ftrace function callback recursion code which
    uses a "transition" bit that gets set, to allow for a single recursion for
    to handle transitions between contexts.

    Cc: stable@vger.kernel.org
    Fixes: 567cd4da54ff4 ("ring-buffer: User context bit recursion checking")
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)