1. 16 Mar, 2020 25 commits
  2. 03 Mar, 2020 1 commit
    • Ville Syrjälä's avatar
      rtc: cmos: Use spin_lock_irqsave() in cmos_interrupt() · 66e4f4a9
      Ville Syrjälä authored
      cmos_interrupt() isn't always called from hardirq context, so
      we must use spin_lock_irqsave() & co.
      
      ================================
      WARNING: inconsistent lock state
      5.6.0-rc2-CI-CI_DRM_7981+ #1 Tainted: G     U
      --------------------------------
      inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
      rtcwake/4315 [HC0[0]:SC0[0]:HE1:SE1] takes:
      ffffffff82635198 (rtc_lock){?...}, at: cmos_interrupt+0x18/0x100
      {IN-HARDIRQ-W} state was registered at:
        lock_acquire+0xa7/0x1c0
        _raw_spin_lock+0x2a/0x40
        cmos_interrupt+0x18/0x100
        rtc_handler+0x75/0xc0
        acpi_ev_fixed_event_detect+0xf9/0x132
        acpi_ev_sci_xrupt_handler+0xb/0x28
        acpi_irq+0x13/0x30
        __handle_irq_event_percpu+0x41/0x2c0
        handle_irq_event_percpu+0x2b/0x70
        handle_irq_event+0x2f/0x50
        handle_fasteoi_irq+0x8e/0x150
        do_IRQ+0x7e/0x160
        ret_from_intr+0x0/0x35
        mwait_idle+0x7e/0x200
        do_idle+0x1bb/0x260
        cpu_startup_entry+0x14/0x20
        start_secondary+0x15f/0x1b0
        secondary_startup_64+0xa4/0xb0
      irq event stamp: 42003
      hardirqs last  enabled at (42003): [<ffffffff81a36567>] _raw_spin_unlock_irqrestore+0x47/0x60
      hardirqs last disabled at (42002): [<ffffffff81a362ed>] _raw_spin_lock_irqsave+0xd/0x50
      softirqs last  enabled at (41848): [<ffffffff81e00385>] __do_softirq+0x385/0x47f
      softirqs last disabled at (41841): [<ffffffff810bab3a>] irq_exit+0xba/0xc0
      
      other info that might help us debug this:
       Possible unsafe locking scenario:
      
             CPU0
             ----
        lock(rtc_lock);
        <Interrupt>
          lock(rtc_lock);
      
       *** DEADLOCK ***
      
      6 locks held by rtcwake/4315:
       #0: ffff888175dc9408 (sb_writers#5){.+.+}, at: vfs_write+0x1a4/0x1d0
       #1: ffff88817406ca80 (&of->mutex){+.+.}, at: kernfs_fop_write+0xdd/0x1b0
       #2: ffff888179be85e0 (kn->count#236){.+.+}, at: kernfs_fop_write+0xe6/0x1b0
       #3: ffffffff82641e00 (system_transition_mutex){+.+.}, at: pm_suspend+0xb3/0x3b0
       #4: ffffffff826b3ee0 (acpi_scan_lock){+.+.}, at: acpi_suspend_begin+0x47/0x80
       #5: ffff888178fc3960 (&dev->mutex){....}, at: device_resume+0x92/0x1c0
      
      stack backtrace:
      CPU: 3 PID: 4315 Comm: rtcwake Tainted: G     U            5.6.0-rc2-CI-CI_DRM_7981+ #1
      Hardware name: Google Soraka/Soraka, BIOS MrChromebox-4.10 08/25/2019
      Call Trace:
       dump_stack+0x71/0x9b
       mark_lock+0x49a/0x500
       ? print_shortest_lock_dependencies+0x200/0x200
       __lock_acquire+0x6d4/0x15d0
       ? __lock_acquire+0x460/0x15d0
       lock_acquire+0xa7/0x1c0
       ? cmos_interrupt+0x18/0x100
       _raw_spin_lock+0x2a/0x40
       ? cmos_interrupt+0x18/0x100
       cmos_interrupt+0x18/0x100
       cmos_resume+0x1fd/0x290
       ? __acpi_pm_set_device_wakeup+0x24/0x100
       pnp_bus_resume+0x5e/0x90
       ? pnp_bus_suspend+0x10/0x10
       dpm_run_callback+0x64/0x280
       device_resume+0xd4/0x1c0
       ? dpm_watchdog_set+0x60/0x60
       dpm_resume+0x106/0x410
       ? dpm_resume_early+0x38c/0x3e0
       dpm_resume_end+0x8/0x10
       suspend_devices_and_enter+0x16f/0xbe0
       ? rcu_read_lock_sched_held+0x4d/0x80
       pm_suspend+0x344/0x3b0
       state_store+0x78/0xe0
       kernfs_fop_write+0x112/0x1b0
       vfs_write+0xb9/0x1d0
       ksys_write+0x9f/0xe0
       do_syscall_64+0x4f/0x220
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      RIP: 0033:0x7ff934307154
      Code: 89 02 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 8d 05 b1 07 2e 00 8b 00 85 c0 75 13 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 f3 c3 66 90 41 54 55 49 89 d4 53 48 89 f5
      RSP: 002b:00007ffe2647c168 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 00007ff934307154
      RDX: 0000000000000004 RSI: 000055de3ec4e5a0 RDI: 000000000000000a
      RBP: 000055de3ec4e5a0 R08: 000055de3ec4c5e0 R09: 00007ff9349f3740
      R10: 000055de3ec4a010 R11: 0000000000000246 R12: 000055de3ec4c500
      R13: 0000000000000004 R14: 00007ff9345df2a0 R15: 00007ff9345de760
      
      Fixes: c6d3a278 ("rtc: cmos: acknowledge ACPI driven wake alarms upon resume")
      Fixes: 311ee9c1 ("rtc: cmos: allow using ACPI for RTC alarm instead of HPET")
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://lore.kernel.org/r/20200221144739.11746-1-ville.syrjala@linux.intel.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      66e4f4a9
  3. 18 Feb, 2020 1 commit
  4. 12 Feb, 2020 2 commits
  5. 10 Feb, 2020 2 commits
    • Linus Torvalds's avatar
      Linux 5.6-rc1 · bb6d3fb3
      Linus Torvalds authored
      bb6d3fb3
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 89a47dd1
      Linus Torvalds authored
      Pull more Kbuild updates from Masahiro Yamada:
      
       - fix randconfig to generate a sane .config
      
       - rename hostprogs-y / always to hostprogs / always-y, which are more
         natual syntax.
      
       - optimize scripts/kallsyms
      
       - fix yes2modconfig and mod2yesconfig
      
       - make multiple directory targets ('make foo/ bar/') work
      
      * tag 'kbuild-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: make multiple directory targets work
        kconfig: Invalidate all symbols after changing to y or m.
        kallsyms: fix type of kallsyms_token_table[]
        scripts/kallsyms: change table to store (strcut sym_entry *)
        scripts/kallsyms: rename local variables in read_symbol()
        kbuild: rename hostprogs-y/always to hostprogs/always-y
        kbuild: fix the document to use extra-y for vmlinux.lds
        kconfig: fix broken dependency in randconfig-generated .config
      89a47dd1
  6. 09 Feb, 2020 9 commits
    • Linus Torvalds's avatar
      Merge tag 'zonefs-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs · 380a129e
      Linus Torvalds authored
      Pull new zonefs file system from Damien Le Moal:
       "Zonefs is a very simple file system exposing each zone of a zoned
        block device as a file.
      
        Unlike a regular file system with native zoned block device support
        (e.g. f2fs or the on-going btrfs effort), zonefs does not hide the
        sequential write constraint of zoned block devices to the user. As a
        result, zonefs is not a POSIX compliant file system. Its goal is to
        simplify the implementation of zoned block devices support in
        applications by replacing raw block device file accesses with a richer
        file based API, avoiding relying on direct block device file ioctls
        which may be more obscure to developers.
      
        One example of this approach is the implementation of LSM
        (log-structured merge) tree structures (such as used in RocksDB and
        LevelDB) on zoned block devices by allowing SSTables to be stored in a
        zone file similarly to a regular file system rather than as a range of
        sectors of a zoned device. The introduction of the higher level
        construct "one file is one zone" can help reducing the amount of
        changes needed in the application while at the same time allowing the
        use of zoned block devices with various programming languages other
        than C.
      
        Zonefs IO management implementation uses the new iomap generic code.
        Zonefs has been successfully tested using a functional test suite
        (available with zonefs userland format tool on github) and a prototype
        implementation of LevelDB on top of zonefs"
      
      * tag 'zonefs-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs:
        zonefs: Add documentation
        fs: New zonefs file system
      380a129e
    • Marc Zyngier's avatar
      irqchip/gic-v4.1: Avoid 64bit division for the sake of 32bit ARM · 490d332e
      Marc Zyngier authored
      In order to allow the GICv4 code to link properly on 32bit ARM,
      make sure we don't use 64bit divisions when it isn't strictly
      necessary.
      
      Fixes: 4e6437f1 ("irqchip/gic-v4.1: Ensure L2 vPE table is allocated at RD level")
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Zenghui Yu <yuzenghui@huawei.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      490d332e
    • Linus Torvalds's avatar
      Merge tag '5.6-rc-smb3-plugfest-patches' of git://git.samba.org/sfrench/cifs-2.6 · d1ea35f4
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "13 cifs/smb3 patches, most from testing at the SMB3 plugfest this week:
      
         - Important fix for multichannel and for modefromsid mounts.
      
         - Two reconnect fixes
      
         - Addition of SMB3 change notify support
      
         - Backup tools fix
      
         - A few additional minor debug improvements (tracepoints and
           additional logging found useful during testing this week)"
      
      * tag '5.6-rc-smb3-plugfest-patches' of git://git.samba.org/sfrench/cifs-2.6:
        smb3: Add defines for new information level, FileIdInformation
        smb3: print warning once if posix context returned on open
        smb3: add one more dynamic tracepoint missing from strict fsync path
        cifs: fix mode bits from dir listing when mounted with modefromsid
        cifs: fix channel signing
        cifs: add SMB3 change notification support
        cifs: make multichannel warning more visible
        cifs: fix soft mounts hanging in the reconnect code
        cifs: Add tracepoints for errors on flush or fsync
        cifs: log warning message (once) if out of disk space
        cifs: fail i/o on soft mounts if sessionsetup errors out
        smb3: fix problem with null cifs super block with previous patch
        SMB3: Backup intent flag missing from some more ops
      d1ea35f4
    • Linus Torvalds's avatar
      Merge branch 'work.vboxsf' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 5586c3c1
      Linus Torvalds authored
      Pull vboxfs from Al Viro:
       "This is the VirtualBox guest shared folder support by Hans de Goede,
        with fixups for fs_parse folded in to avoid bisection hazards from
        those API changes..."
      
      * 'work.vboxsf' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs: Add VirtualBox guest shared folder (vboxsf) support
      5586c3c1
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1a2a76c2
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "A set of fixes for X86:
      
         - Ensure that the PIT is set up when the local APIC is disable or
           configured in legacy mode. This is caused by an ordering issue
           introduced in the recent changes which skip PIT initialization when
           the TSC and APIC frequencies are already known.
      
         - Handle malformed SRAT tables during early ACPI parsing which caused
           an infinite loop anda boot hang.
      
         - Fix a long standing race in the affinity setting code which affects
           PCI devices with non-maskable MSI interrupts. The problem is caused
           by the non-atomic writes of the MSI address (destination APIC id)
           and data (vector) fields which the device uses to construct the MSI
           message. The non-atomic writes are mandated by PCI.
      
           If both fields change and the device raises an interrupt after
           writing address and before writing data, then the MSI block
           constructs a inconsistent message which causes interrupts to be
           lost and subsequent malfunction of the device.
      
           The fix is to redirect the interrupt to the new vector on the
           current CPU first and then switch it over to the new target CPU.
           This allows to observe an eventually raised interrupt in the
           transitional stage (old CPU, new vector) to be observed in the APIC
           IRR and retriggered on the new target CPU and the new vector.
      
           The potential spurious interrupts caused by this are harmless and
           can in the worst case expose a buggy driver (all handlers have to
           be able to deal with spurious interrupts as they can and do happen
           for various reasons).
      
         - Add the missing suspend/resume mechanism for the HYPERV hypercall
           page which prevents resume hibernation on HYPERV guests. This
           change got lost before the merge window.
      
         - Mask the IOAPIC before disabling the local APIC to prevent
           potentially stale IOAPIC remote IRR bits which cause stale
           interrupt lines after resume"
      
      * tag 'x86-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Mask IOAPIC entries when disabling the local APIC
        x86/hyperv: Suspend/resume the hypercall page for hibernation
        x86/apic/msi: Plug non-maskable MSI affinity race
        x86/boot: Handle malformed SRAT tables during early ACPI parsing
        x86/timer: Don't skip PIT setup when APIC is disabled or in legacy mode
      1a2a76c2
    • Linus Torvalds's avatar
      Merge tag 'smp-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f4137760
      Linus Torvalds authored
      Pull SMP fixes from Thomas Gleixner:
       "Two fixes for the SMP related functionality:
      
         - Make the UP version of smp_call_function_single() match SMP
           semantics when called for a not available CPU. Instead of emitting
           a warning and assuming that the function call target is CPU0,
           return a proper error code like the SMP version does.
      
         - Remove a superfluous check in smp_call_function_many_cond()"
      
      * tag 'smp-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        smp/up: Make smp_call_function_single() match SMP semantics
        smp: Remove superfluous cond_func check in smp_call_function_many_cond()
      f4137760
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ca21b9b3
      Linus Torvalds authored
      Pull perf fixes from Thomas Gleixner:
       "A set of fixes and improvements for the perf subsystem:
      
        Kernel fixes:
      
         - Install cgroup events to the correct CPU context to prevent a
           potential list double add
      
         - Prevent an integer underflow in the perf mlock accounting
      
         - Add a missing prototype for arch_perf_update_userpage()
      
        Tooling:
      
         - Add a missing unlock in the error path of maps__insert() in perf
           maps.
      
         - Fix the build with the latest libbfd
      
         - Fix the perf parser so it does not delete parse event terms, which
           caused a regression for using perf with the ARM CoreSight as the
           sink configuration was missing due to the deletion.
      
         - Fix the double free in the perf CPU map merging test case
      
         - Add the missing ustring support for the perf probe command"
      
      * tag 'perf-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf maps: Add missing unlock to maps__insert() error case
        perf probe: Add ustring support for perf probe command
        perf: Make perf able to build with latest libbfd
        perf test: Fix test case Merge cpu map
        perf parse: Copy string to perf_evsel_config_term
        perf parse: Refactor 'struct perf_evsel_config_term'
        kernel/events: Add a missing prototype for arch_perf_update_userpage()
        perf/cgroups: Install cgroup events to correct cpuctx
        perf/core: Fix mlock accounting in perf_mmap()
      ca21b9b3
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2fbc23c7
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "Two small fixes for the time(r) subsystem:
      
         - Handle a subtle race between the clocksource watchdog and a
           concurrent clocksource watchdog stop/start sequence correctly to
           prevent a timer double add bug.
      
         - Fix the file path for the core time namespace file"
      
      * tag 'timers-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource: Prevent double add_timer_on() for watchdog_timer
        MAINTAINERS: Correct path to time namespace source file
      2fbc23c7
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f06bed87
      Linus Torvalds authored
      Pull interrupt fixes from Thomas Gleixner:
       "A set of fixes for the interrupt subsystem:
      
         - Provision only ACPI enabled redistributors on GICv3
      
         - Use the proper command colums when building the INVALL command for
           the GICv3-ITS
      
         - Ensure the allocation of the L2 vPE table for GICv4.1
      
         - Correct the GICv4.1 VPROBASER programming so it uses the proper
           size
      
         - A set of small GICv4.1 tidy up patches
      
         - Configuration cleanup for C-SKY interrupt chip
      
         - Clarify the function documentation for irq_set_wake() to document
           that the wakeup functionality is orthogonal to the irq
           disable/enable mechanism"
      
      * tag 'irq-urgent-2020-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic-v3-its: Rename VPENDBASER/VPROPBASER accessors
        irqchip/gic-v3-its: Remove superfluous WARN_ON
        irqchip/gic-v4.1: Drop 'tmp' in inherit_vpe_l1_table_from_rd()
        irqchip/gic-v4.1: Ensure L2 vPE table is allocated at RD level
        irqchip/gic-v4.1: Set vpe_l1_base for all redistributors
        irqchip/gic-v4.1: Fix programming of GICR_VPROPBASER_4_1_SIZE
        genirq: Clarify that irq wake state is orthogonal to enable/disable
        irqchip/gic-v3-its: Reference to its_invall_cmd descriptor when building INVALL
        irqchip: Some Kconfig cleanup for C-SKY
        irqchip/gic-v3: Only provision redistributors that are enabled in ACPI
      f06bed87