1. Nov 15, 2017
    • Bjorn Helgaas's avatar
      Merge branch 'pci/hotplug' into next · 8d666e53
      Bjorn Helgaas authored
      * pci/hotplug:
        PCI: pciehp: Do not clear Presence Detect Changed during initialization
        PCI: pciehp: Fix race condition handling surprise link down
        PCI: Distribute available resources to hotplug-capable bridges
        PCI: Distribute available buses to hotplug-capable bridges
        PCI: Do not allocate more buses than available in parent
        PCI: Open-code the two pass loop when scanning bridges
        PCI: Move pci_hp_add_bridge() to drivers/pci/probe.c
        PCI: Add for_each_pci_bridge() helper
        PCI: shpchp: Convert timers to use timer_setup()
        PCI: cpqphp: Convert timers to use timer_setup()
        PCI: pciehp: Convert timers to use timer_setup()
        PCI: ibmphp: Use common error handling code in unconfigure_boot_device()
      8d666e53
    • Bjorn Helgaas's avatar
      Merge branch 'pci/endpoint' into next · 1a03bac3
      Bjorn Helgaas authored
      * pci/endpoint:
        misc: pci_endpoint_test: Fix BUG_ON error during pci_disable_msi()
        misc: pci_endpoint_test: Fix pci_endpoint_test not releasing resources on remove
        misc: pci_endpoint_test: Fix failure path return values in probe
        misc: pci_endpoint_test: Avoid triggering a BUG()
        misc: pci_endpoint_test: Prevent some integer overflows
      1a03bac3
    • Bjorn Helgaas's avatar
      Merge branch 'pci/aspm' into next · 9c42da50
      Bjorn Helgaas authored
      * pci/aspm:
        PCI/ASPM: Add L1 Substates definitions
        PCI/ASPM: Reformat ASPM register definitions
        PCI/ASPM: Use correct capability pointer to program LTR_L1.2_THRESHOLD
        PCI/ASPM: Account for downstream device's Port Common_Mode_Restore_Time
        PCI/ASPM: Deal with missing root ports in link state handling
      9c42da50
    • Bjorn Helgaas's avatar
      Merge branch 'pci/aer' into next · f5b4f7ce
      Bjorn Helgaas authored
      * pci/aer:
        PCI/AER: Report non-fatal errors only to the affected endpoint
      f5b4f7ce
    • Bjorn Helgaas's avatar
      Merge branch 'pci/acpi' into next · a9a6bb46
      Bjorn Helgaas authored
      * pci/acpi:
        ACPI / PCI: Bail early in acpi_pci_add_bus() if there is no ACPI handle
      a9a6bb46
  2. Nov 14, 2017
  3. Nov 07, 2017
    • Mika Westerberg's avatar
      PCI: pciehp: Do not clear Presence Detect Changed during initialization · db63d400
      Mika Westerberg authored
      
      
      It is possible that the hotplug event has already happened before the
      driver is attached to a PCIe hotplug downstream port. If we just clear the
      status we never get the hotplug interrupt and thus the event will be
      missed.
      
      To make sure that does not happen, we leave Presence Detect Changed bit
      untouched during initialization. Then once the event is unmasked we get an
      interrupt and handle the hotplug event properly.
      
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      db63d400
    • Mika Westerberg's avatar
      PCI: pciehp: Fix race condition handling surprise link down · 49902239
      Mika Westerberg authored
      A surprise link down may retrain very quickly causing the same slot
      generate a link up event before handling the link down event completes.
      
      Since the link is active, the power off work queued from the first link
      down will cause a second down event when power is disabled. However, the
      link up event sets the slot state to POWERON_STATE before the event to
      handle this is enqueued, making the second down event believe it needs to
      do something.
      
      This creates constant link up and down event cycle.
      
      To prevent this it is better to handle each event at the time in order it
      occurred, so change the driver to use ordered workqueue instead.
      
      A normal device hotplug triggers two events (presense detect and link up)
      that are already handled properly in the driver but we currently log an
      error if we find an existing device in the slot. Since this is not an error
      change the log level to be debug instead to avoid scaring users.
      
      This is based on the original work by Ashok Raj.
      
      Link: https://patchwork.kernel.org/patch/9469023
      
      
      Suggested-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      49902239
    • Mika Westerberg's avatar
      PCI: Distribute available resources to hotplug-capable bridges · 1a576772
      Mika Westerberg authored
      
      
      The same problem that we have with bus space applies to other resources
      as well. Linux only allocates the minimal amount of resources so that
      the devices currently present barely fit there. This prevents extending
      the chain later on because the resource windows allocated for hotplug
      downstream ports are too small.
      
      Follow what we already did for bus number and assign all available extra
      resources to hotplug-capable bridges. This makes it possible to extend the
      hierarchy later.
      
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      1a576772
    • Mika Westerberg's avatar
      PCI: Distribute available buses to hotplug-capable bridges · 1c02ea81
      Mika Westerberg authored
      
      
      System BIOS sometimes allocates extra bus space for hotplug-capable PCIe
      root/downstream ports. This space is needed if the device plugged to the
      port will have more hotplug-capable downstream ports. A good example of
      this is Thunderbolt. Each Thunderbolt device contains a PCIe switch and
      one or more hotplug-capable PCIe downstream ports where the daisy chain
      can be extended.
      
      Currently Linux only allocates minimal bus space to make sure all the
      enumerated devices barely fit there. The BIOS reserved extra space is
      not taken into consideration at all. Because of this we run out of bus
      space pretty quickly when more PCIe devices are attached to hotplug
      downstream ports in order to extend the chain.
      
      Modify the PCI core so we distribute the available BIOS allocated bus space
      equally between hotplug-capable bridges to make sure there is enough bus
      space for extending the hierarchy later on.
      
      Update kernel docs of the affected functions.
      
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      1c02ea81
    • Mika Westerberg's avatar
      PCI: Do not allocate more buses than available in parent · a20c7f36
      Mika Westerberg authored
      
      
      One can ask more buses to be reserved for hotplug bridges by passing
      pci=hpbussize=N in the kernel command line.  If the parent bus does not
      have enough bus space available we incorrectly create child bus with the
      requested number of subordinate buses.
      
      In the example below hpbussize is set to one more than we have available
      buses in the root port:
      
        pci 0000:07:00.0: [8086:1578] type 01 class 0x060400
        pci 0000:07:00.0: scanning [bus 00-00] behind bridge, pass 0
        pci 0000:07:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
        pci 0000:07:00.0: scanning [bus 00-00] behind bridge, pass 1
        pci_bus 0000:08: busn_res: can not insert [bus 08-ff] under [bus 07-3f] (conflicts with (null) [bus 07-3f])
        pci_bus 0000:08: scanning bus
        ...
        pci_bus 0000:0a: bus scan returning with max=40
        pci_bus 0000:0a: busn_res: [bus 0a-ff] end is updated to 40
        pci_bus 0000:0a: [bus 0a-40] partially hidden behind bridge 0000:07 [bus 07-3f]
        pci_bus 0000:08: bus scan returning with max=40
        pci_bus 0000:08: busn_res: [bus 08-ff] end is updated to 40
      
      Instead of allowing this, limit the subordinate number to be less than or
      equal the maximum subordinate number allocated for the parent bus (if it
      has any).
      
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      [bhelgaas: remove irrelevant dmesg messages]
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      a20c7f36
    • Mika Westerberg's avatar
      PCI: Open-code the two pass loop when scanning bridges · 4147c2fd
      Mika Westerberg authored
      
      
      The current scanning code is really hard to understand because it calls
      the same function in a loop where pass value is changed without any
      comments explaining it:
      
        for (pass = 0; pass < 2; pass++)
          for_each_pci_bridge(dev, bus)
            max = pci_scan_bridge(bus, dev, max, pass);
      
      Unfamiliar reader cannot tell easily what is the purpose of this loop
      without looking at internals of pci_scan_bridge().
      
      In order to make this bit easier to understand, open-code the loop in
      pci_scan_child_bus() and pci_hp_add_bridge() with added comments.
      
      No functional changes intended.
      
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      4147c2fd
    • Mika Westerberg's avatar
      PCI: Move pci_hp_add_bridge() to drivers/pci/probe.c · 95e3ba97
      Mika Westerberg authored
      
      
      There is not much point of having a file with a single function in it.
      Instead we can just move pci_hp_add_bridge() to drivers/pci/probe.c and
      make it available always when PCI core is enabled.
      
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      [bhelgaas: convert printk to dev_err()]
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      95e3ba97
    • Andy Shevchenko's avatar
      PCI: Add for_each_pci_bridge() helper · 24a0c654
      Andy Shevchenko authored
      
      
      The following pattern is often used:
      
        list_for_each_entry(dev, &bus->devices, bus_list) {
          if (pci_is_bridge(dev)) {
            ...
          }
        }
      
      Add a for_each_pci_bridge() helper to make that code easier to write and
      read by reducing indentation level.  It also saves one or few lines of code
      in each occurrence.
      
      Convert PCI core parts here at the same time.
      
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      [bhelgaas: fold in http://lkml.kernel.org/r/20171013165352.25550-1-andriy.shevchenko@linux.intel.com
      
      ]
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      24a0c654
    • Kees Cook's avatar
      PCI: shpchp: Convert timers to use timer_setup() · 3691314a
      Kees Cook authored
      
      
      In preparation for unconditionally passing the struct timer_list pointer to
      all timer callbacks, switch to using the new timer_setup() and from_timer()
      to pass the timer pointer explicitly.
      
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Arvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Quentin Lambert <lambert.quentin@gmail.com>
      Cc: Aleksandr Bezzubikov <zuban32s@gmail.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Marcel Apfelbaum <marcel@redhat.com>
      3691314a
    • Kees Cook's avatar
      PCI: cpqphp: Convert timers to use timer_setup() · 34d773f6
      Kees Cook authored
      
      
      In preparation for unconditionally passing the struct timer_list pointer to
      all timer callbacks, switch to using the new timer_setup() and from_timer()
      to pass the timer pointer explicitly.  This has the result of fixing
      pushbutton_helper_thread(), which was truncating the event pointer to 32
      bits.
      
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Arvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Quentin Lambert <lambert.quentin@gmail.com>
      Cc: Aleksandr Bezzubikov <zuban32s@gmail.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: Marcel Apfelbaum <marcel@redhat.com>
      34d773f6
    • Kees Cook's avatar
      PCI: pciehp: Convert timers to use timer_setup() · c4459a08
      Kees Cook authored
      
      
      In preparation for unconditionally passing the struct timer_list pointer to
      all timer callbacks, switch to using the new timer_setup() and from_timer()
      to pass the timer pointer explicitly. This fixes what appears to be a bug
      in passing the wrong pointer to the timer handler (address of ctrl pointer
      instead of ctrl pointer).
      
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
      Cc: Mayurkumar Patel <mayurkumar.patel@intel.com>
      Cc: Keith Busch <keith.busch@intel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      c4459a08
    • Markus Elfring's avatar
      PCI: ibmphp: Use common error handling code in unconfigure_boot_device() · 05196e25
      Markus Elfring authored
      
      
      Combine two error paths that emit the same message and return the same
      error code.
      
      This issue was detected by using the Coccinelle software.
      
      Signed-off-by: default avatarMarkus Elfring <elfring@users.sourceforge.net>
      [bhelgaas: changelog]
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      05196e25
  4. Nov 01, 2017
  5. Oct 18, 2017
  6. Oct 06, 2017
    • Ard Biesheuvel's avatar
      PCI/ASPM: Deal with missing root ports in link state handling · ee8bdfb6
      Ard Biesheuvel authored
      
      
      Even though it is unconventional, some PCIe host implementations omit the
      root ports entirely, and simply consist of a host bridge (which is not
      modeled as a device in the PCI hierarchy) and a link.
      
      When the downstream device is an endpoint, our current code does not seem
      to mind this unusual configuration. However, when PCIe switches are
      involved, the ASPM code assumes that any downstream switch port has a
      parent, and blindly dereferences the bus->parent->self field of the pci_dev
      struct to chain the downstream link state to the link state of the root
      port. Given that the root port is missing, the link is not modeled at all,
      and nor is the link state, and attempting to access it results in a NULL
      pointer dereference and a crash.
      
      Avoid this by allowing the link state chain to terminate at the downstream
      port if no root port exists.
      
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      ee8bdfb6
    • Gabriele Paoloni's avatar
      PCI/AER: Report non-fatal errors only to the affected endpoint · 86acc790
      Gabriele Paoloni authored
      Previously, if an non-fatal error was reported by an endpoint, we
      called report_error_detected() for the endpoint, every sibling on the
      bus, and their descendents.  If any of them did not implement the
      .error_detected() method, do_recovery() failed, leaving all these
      devices unrecovered.
      
      For example, the system described in the bugzilla below has two devices:
      
        0000:74:02.0 [19e5:a230] SAS controller, driver has .error_detected()
        0000:74:03.0 [19e5:a235] SATA controller, driver lacks .error_detected()
      
      When a device such as 74:02.0 reported a non-fatal error, do_recovery()
      failed because 74:03.0 lacked an .error_detected() method.  But per PCIe
      r3.1, sec 6.2.2.2.2, such an error does not compromise the Link and
      does not affect 74:03.0:
      
        Non-fatal errors are uncorrectable errors which cause a particular
        transaction to be unreliable but the Link is otherwise fully functional.
        Isolating Non-fatal from Fatal errors provides Requester/Receiver logic
        in a device or system management software the opportunity to recover from
        the error without resetting the components on the Link and disturbing
        other transactions in progress.  Devices not associated with the
        transaction in error are not impacted by the error.
      
      Report non-fatal errors only to the endpoint that reported them.  We really
      want to check for AER_NONFATAL here, but the current code structure doesn't
      allow that.  Looking for pci_channel_io_normal is the best we can do now.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=197055
      Fixes: 6c2b374d
      
       ("PCI-Express AER implemetation: AER core and aerdriver")
      Signed-off-by: default avatarGabriele Paoloni <gabriele.paoloni@huawei.com>
      Signed-off-by: default avatarDongdong Liu <liudongdong3@huawei.com>
      [bhelgaas: changelog]
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      86acc790
    • Vitaly Kuznetsov's avatar
      ACPI / PCI: Bail early in acpi_pci_add_bus() if there is no ACPI handle · a0040c01
      Vitaly Kuznetsov authored
      
      
      Hyper-V instances support PCI pass-through which is implemented through PV
      pci-hyperv driver. When a device is passed through, a new root PCI bus is
      created in the guest. The bus sits on top of VMBus and has no associated
      information in ACPI. acpi_pci_add_bus() in this case proceeds all the way
      to acpi_evaluate_dsm(), which reports
      
        ACPI: \: failed to evaluate _DSM (0x1001)
      
      While acpi_pci_slot_enumerate() and acpiphp_enumerate_slots() are protected
      against ACPI_HANDLE() being NULL and do nothing, acpi_evaluate_dsm() is not
      and gives us the error. It seems the correct fix is to not do anything in
      acpi_pci_add_bus() in such cases.
      
      Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      a0040c01
  7. Oct 02, 2017
    • Linus Torvalds's avatar
      Linux 4.14-rc3 · 9e66317d
      Linus Torvalds authored
      9e66317d
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 368f8998
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "This contains the following fixes and improvements:
      
         - Avoid dereferencing an unprotected VMA pointer in the fault signal
           generation code
      
         - Fix inline asm call constraints for GCC 4.4
      
         - Use existing register variable to retrieve the stack pointer
           instead of forcing the compiler to create another indirect access
           which results in excessive extra 'mov %rsp, %<dst>' instructions
      
         - Disable branch profiling for the memory encryption code to prevent
           an early boot crash
      
         - Fix a sparse warning caused by casting the __user annotation in
           __get_user_asm_u64() away
      
         - Fix an off by one error in the loop termination of the error patch
           in the x86 sysfs init code
      
         - Add missing CPU IDs to various Intel specific drivers to enable the
           functionality on recent hardware
      
         - More (init) constification in the numachip code"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/asm: Use register variable to get stack pointer value
        x86/mm: Disable branch profiling in mem_encrypt.c
        x86/asm: Fix inline asm call constraints for GCC 4.4
        perf/x86/intel/uncore: Correct num_boxes for IIO and IRP
        perf/x86/intel/rapl: Add missing CPU IDs
        perf/x86/msr: Add missing CPU IDs
        perf/x86/intel/cstate: Add missing CPU IDs
        x86: Don't cast away the __user in __get_user_asm_u64()
        x86/sysfs: Fix off-by-one error in loop termination
        x86/mm: Fix fault error path using unsafe vma pointer
        x86/numachip: Add const and __initconst to numachip2_clockevent
      368f8998
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c42ed9f9
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "This adds a new timer wheel function which is required for the
        conversion of the timer callback function from the 'unsigned long
        data' argument to 'struct timer_list *timer'. This conversion has two
        benefits:
      
         1) It makes struct timer_list smaller
      
         2) Many callers hand in a pointer to the timer or to the structure
            containing the timer, which happens via type casting both at setup
            and in the callback. This change gets rid of the typecasts.
      
        Once the conversion is complete, which is planned for 4.15, the old
        setup function and the intermediate typecast in the new setup function
        go away along with the data field in struct timer_list.
      
        Merging this now into mainline allows a smooth queueing of the actual
        conversion in the affected maintainer trees without creating
        dependencies"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        um/time: Fixup namespace collision
        timer: Prepare to change timer callback argument type
      c42ed9f9
    • Linus Torvalds's avatar
      Merge branch 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 82513545
      Linus Torvalds authored
      Pull smp/hotplug fixes from Thomas Gleixner:
       "This addresses the fallout of the new lockdep mechanism which covers
        completions in the CPU hotplug code.
      
        The lockdep splats are false positives, but there is no way to
        annotate that reliably. The solution is to split the completions for
        CPU up and down, which requires some reshuffling of the failure
        rollback handling as well"
      
      * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        smp/hotplug: Hotplug state fail injection
        smp/hotplug: Differentiate the AP completion between up and down
        smp/hotplug: Differentiate the AP-work lockdep class between up and down
        smp/hotplug: Callback vs state-machine consistency
        smp/hotplug: Rewrite AP state machine core
        smp/hotplug: Allow external multi-instance rollback
        smp/hotplug: Add state diagram
      82513545
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7e103ace
      Linus Torvalds authored
      Pull scheduler fixes from Thomas Gleixner:
       "The scheduler pull request comes with the following updates:
      
         - Prevent a divide by zero issue by validating the input value of
           sysctl_sched_time_avg
      
         - Make task state printing consistent all over the place and have
           explicit state characters for IDLE and PARKED so they wont be
           displayed as 'D' state which confuses tools"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/sysctl: Check user input value of sysctl_sched_time_avg
        sched/debug: Add explicit TASK_PARKED printing
        sched/debug: Ignore TASK_IDLE for SysRq-W
        sched/debug: Add explicit TASK_IDLE printing
        sched/tracing: Use common task-state helpers
        sched/tracing: Fix trace_sched_switch task-state printing
        sched/debug: Remove unused variable
        sched/debug: Convert TASK_state to hex
        sched/debug: Implement consistent task-state printing
      7e103ace
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1c6f705b
      Linus Torvalds authored
      Pull perf fixes from Thomas Gleixner:
      
       - Prevent a division by zero in the perf aux buffer handling
      
       - Sync kernel headers with perf tool headers
      
       - Fix a build failure in the syscalltbl code
      
       - Make the debug messages of perf report --call-graph work correctly
      
       - Make sure that all required perf files are in the MANIFEST for
         container builds
      
       - Fix the atrr.exclude kernel handling so it respects the
         perf_event_paranoid and the user permissions
      
       - Make perf test on s390x work correctly
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/aux: Only update ->aux_wakeup in non-overwrite mode
        perf test: Fix vmlinux failure on s390x part 2
        perf test: Fix vmlinux failure on s390x
        perf tools: Fix syscalltbl build failure
        perf report: Fix debug messages with --call-graph option
        perf evsel: Fix attr.exclude_kernel setting for default cycles:p
        tools include: Sync kernel ABI headers with tooling headers
        perf tools: Get all of tools/{arch,include}/ in the MANIFEST
      1c6f705b
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1de47f3c
      Linus Torvalds authored
      Pull  locking fixes from Thomas Gleixner:
       "Two fixes for locking:
      
         - Plug a hole the pi_stat->owner serialization which was changed
           recently and failed to fixup two usage sites.
      
         - Prevent reordering of the rwsem_has_spinner() check vs the
           decrement of rwsem count in up_write() which causes a missed
           wakeup"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/rwsem-xadd: Fix missed wakeup due to reordering of load
        futex: Fix pi_state->owner serialization
      1de47f3c
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3d9d62b9
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
      
       - Add a missing NULL pointer check in free_irq()
      
       - Fix a memory leak/memory corruption in the generic irq chip
      
       - Add missing rcu annotations for radix tree access
      
       - Use ffs instead of fls when extracting data from a chip register in
         the MIPS GIC irq driver
      
       - Fix the unmasking of IPI interrupts in the MIPS GIC driver so they
         end up at the target CPU and not at CPU0
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irq/generic-chip: Don't replace domain's name
        irqdomain: Add __rcu annotations to radix tree accessors
        irqchip/mips-gic: Use effective affinity to unmask
        irqchip/mips-gic: Fix shifts to extract register fields
        genirq: Check __free_irq() return value for NULL
      3d9d62b9
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 156069f8
      Linus Torvalds authored
      Pull objtool fixes from Thomas Gleixner:
       "Two small fixes for objtool:
      
         - Support frame pointer setup via 'lea (%rsp), %rbp' which was not
           yet supported and caused build warnings
      
         - Disable unreacahble warnings for GCC4.4 and older to avoid false
           positives caused by the compiler itself"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Support unoptimized frame pointer setup
        objtool: Skip unreachable warnings for GCC 4.4 and older
      156069f8
  8. Oct 01, 2017