1. 11 Feb, 2019 3 commits
  2. 07 Feb, 2019 21 commits
    • James Morse's avatar
      ACPI / APEI: Use separate fixmap pages for arm64 NMI-like notifications · b972d2ea
      James Morse authored
      Now that ghes notification helpers provide the fixmap slots and
      take the lock themselves, multiple NMI-like notifications can
      be used on arm64.
      
      These should be named after their notification method as they can't
      all be called 'NMI'. x86's NOTIFY_NMI already is, change the SEA
      fixmap entry to be called FIX_APEI_GHES_SEA.
      
      Future patches can add support for FIX_APEI_GHES_SEI and
      FIX_APEI_GHES_SDEI_{NORMAL,CRITICAL}.
      
      Because all of ghes.c builds on both architectures, provide a
      constant for each fixmap entry that the architecture will never
      use.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b972d2ea
    • James Morse's avatar
      ACPI / APEI: Only use queued estatus entry during in_nmi_queue_one_entry() · d9f608dc
      James Morse authored
      Each struct ghes has an worst-case sized buffer for storing the
      estatus. If an error is being processed by ghes_proc() in process
      context this buffer will be in use. If the error source then triggers
      an NMI-like notification, the same buffer will be used by
      in_nmi_queue_one_entry() to stage the estatus data, before
      __process_error() copys it into a queued estatus entry.
      
      Merge __process_error()s work into in_nmi_queue_one_entry() so that
      the queued estatus entry is used from the beginning. Use the new
      ghes_peek_estatus() to know how much memory to allocate from
      the ghes_estatus_pool before reading the records.
      Reported-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      
      Change since v6:
       * Added a comment explaining the 'ack-error, then goto no_work'.
       * Added missing esatus-clearing, which is necessary after reading the GAS,
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d9f608dc
    • James Morse's avatar
      ACPI / APEI: Split ghes_read_estatus() to allow a peek at the CPER length · e00a6e33
      James Morse authored
      ghes_read_estatus() reads the record address, then the record's
      header, then performs some sanity checks before reading the
      records into the provided estatus buffer.
      
      To provide this estatus buffer the caller must know the size of the
      records in advance, or always provide a worst-case sized buffer as
      happens today for the non-NMI notifications.
      
      Add a function to peek at the record's header to find the size. This
      will let the NMI path allocate the right amount of memory before reading
      the records, instead of using the worst-case size, and having to copy
      the records.
      
      Split ghes_read_estatus() to create __ghes_peek_estatus() which
      returns the address and size of the CPER records.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      
      Changes since v7:
       * Grammar
       * concistent argument ordering
      
      Changes since v6:
       * Additional buf_addr = 0 error handling
       * Moved checking out of peek-estatus
       * Reworded an error message so we can tell them apart
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e00a6e33
    • James Morse's avatar
      ACPI / APEI: Make GHES estatus header validation more user friendly · f2a681b9
      James Morse authored
      ghes_read_estatus() checks various lengths in the top-level header to
      ensure the CPER records to be read aren't obviously corrupt.
      
      Take the opportunity to make this more user-friendly, printing a
      (ratelimited) message about the nature of the header format error.
      Suggested-by: default avatarBorislav Petkov <bp@alien8.de>
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      [ rjw: Add missing 'static' ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f2a681b9
    • James Morse's avatar
      ACPI / APEI: Pass ghes and estatus separately to avoid a later copy · f2a7e059
      James Morse authored
      The NMI-like notifications scribble over ghes->estatus, before
      copying it somewhere else. If this interrupts the ghes_probe() code
      calling ghes_proc() on each struct ghes, the data is corrupted.
      
      All the NMI-like notifications should use a queued estatus entry
      from the beginning, instead of the ghes version, then copying it.
      To do this, break up any use of "ghes->estatus" so that all
      functions take the estatus as an argument.
      
      This patch just moves these ghes->estatus dereferences into separate
      arguments, no change in behaviour. struct ghes becomes unused in
      ghes_clear_estatus() as it only wanted ghes->estatus, which we now
      pass directly. This is removed.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f2a7e059
    • James Morse's avatar
      ACPI / APEI: Let the notification helper specify the fixmap slot · b484079b
      James Morse authored
      ghes_copy_tofrom_phys() uses a different fixmap slot depending on in_nmi().
      This doesn't work when there are multiple NMI-like notifications, that
      could interrupt each other.
      
      As with the locking, move the chosen fixmap_idx to the notification helper.
      This only matters for NMI-like notifications, anything calling
      ghes_proc() can use the IRQ fixmap slot as its already holding an irqsave
      spinlock.
      
      This lets us collapse the ghes_ioremap_pfn_*() helpers.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b484079b
    • James Morse's avatar
      ACPI / APEI: Move locking to the notification helper · 3b880cbe
      James Morse authored
      ghes_copy_tofrom_phys() takes different locks depending on in_nmi().
      This doesn't work if there are multiple NMI-like notifications, that
      can interrupt each other.
      
      Now that NOTIFY_SEA is always called in the same context, move the
      lock-taking to the notification helper. The helper will always know
      which lock to take. This avoids ghes_copy_tofrom_phys() taking a guess
      based on in_nmi().
      
      This splits NOTIFY_NMI and NOTIFY_SEA to use different locks. All
      the other notifications use ghes_proc(), and are called in process
      or IRQ context. Move the spin_lock_irqsave() around their ghes_proc()
      calls.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      3b880cbe
    • James Morse's avatar
      arm64: KVM/mm: Move SEA handling behind a single 'claim' interface · d44f1b8d
      James Morse authored
      To split up APEIs in_nmi() path, the caller needs to always be
      in_nmi(). Add a helper to do the work and claim the notification.
      
      When KVM or the arch code takes an exception that might be a RAS
      notification, it asks the APEI firmware-first code whether it wants
      to claim the exception. A future kernel-first mechanism may be queried
      afterwards, and claim the notification, otherwise we fall through
      to the existing default behaviour.
      
      The NOTIFY_SEA code was merged before considering multiple, possibly
      interacting, NMI-like notifications and the need to consider kernel
      first in the future. Make the 'claiming' behaviour explicit.
      
      Restructuring the APEI code to allow multiple NMI-like notifications
      means any notification that might interrupt interrupts-masked
      code must always be wrapped in nmi_enter()/nmi_exit(). This will
      allow APEI to use in_nmi() to use the right fixmap entries.
      
      Mask SError over this window to prevent an asynchronous RAS error
      arriving and tripping 'nmi_enter()'s BUG_ON(in_nmi()).
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Tested-by: default avatarTyler Baicar <tbaicar@codeaurora.org>
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d44f1b8d
    • James Morse's avatar
      KVM: arm/arm64: Add kvm_ras.h to collect kvm specific RAS plumbing · 0db5e022
      James Morse authored
      To split up APEIs in_nmi() path, the caller needs to always be
      in_nmi(). KVM shouldn't have to know about this, pull the RAS plumbing
      out into a header file.
      
      Currently guest synchronous external aborts are claimed as RAS
      notifications by handle_guest_sea(), which is hidden in the arch codes
      mm/fault.c. 32bit gets a dummy declaration in system_misc.h.
      
      There is going to be more of this in the future if/when the kernel
      supports the SError-based firmware-first notification mechanism and/or
      kernel-first notifications for both synchronous external abort and
      SError. Each of these will come with some Kconfig symbols and a
      handful of header files.
      
      Create a header file for all this.
      
      This patch gives handle_guest_sea() a 'kvm_' prefix, and moves the
      declarations to kvm_ras.h as preparation for a future patch that moves
      the ACPI-specific RAS code out of mm/fault.c.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarPunit Agrawal <punit.agrawal@arm.com>
      Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Tested-by: default avatarTyler Baicar <tbaicar@codeaurora.org>
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0db5e022
    • James Morse's avatar
      ACPI / APEI: Switch NOTIFY_SEA to use the estatus queue · 255097c8
      James Morse authored
      Now that the estatus queue can be used by more than one notification
      method, we can move notifications that have NMI-like behaviour over.
      
      Switch NOTIFY_SEA over to use the estatus queue. This makes it behave
      in the same way as x86's NOTIFY_NMI.
      
      Remove Kconfig's ability to turn ACPI_APEI_SEA off if ACPI_APEI_GHES
      is selected. This roughly matches the x86 NOTIFY_NMI behaviour, and means
      each architecture has at least one user of the estatus-queue, meaning it
      doesn't need guarding with ifdef.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      255097c8
    • James Morse's avatar
      ACPI / APEI: Move NOTIFY_SEA between the estatus-queue and NOTIFY_NMI · 9c9d0805
      James Morse authored
      The estatus-queue code is currently hidden by the NOTIFY_NMI #ifdefs.
      Once NOTIFY_SEA starts using the estatus-queue we can stop hiding
      it as each architecture has a user that can't be turned off.
      
      Split the existing CONFIG_HAVE_ACPI_APEI_NMI block in two, and move
      the SEA code into the gap.
      
      Move the code around ... and changes the stale comment describing
      why the status queue is necessary: printk() is no longer the issue,
      its the helpers like memory_failure_queue() that aren't nmi safe.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      9c9d0805
    • James Morse's avatar
      ACPI / APEI: Don't allow ghes_ack_error() to mask earlier errors · 06ddeadc
      James Morse authored
      During ghes_proc() we use ghes_ack_error() to tell an external agent
      we are done with these records and it can re-use the memory.
      
      rc may hold an error returned by ghes_read_estatus(), ENOENT causes
      us to skip ghes_ack_error() (as there is nothing to ack), but rc may
      also by EIO, which gets supressed.
      
      ghes_clear_estatus() is where we mark the records as processed for
      non GHESv2 error sources, and already spots the ENOENT case as
      buf_paddr is set to 0 by ghes_read_estatus().
      
      Move the ghes_ack_error() call in here to avoid extra logic with
      the return code in ghes_proc().
      
      This enables GHESv2 acking for NMI-like error sources. This is safe
      as the buffer is pre-mapped by map_gen_v2() before the GHES is added
      to any NMI handler lists.
      
      This same pre-mapping step means we can't receive an error from
      apei_read()/write() here as apei_check_gar() succeeded when it
      was mapped, and the mapping was cached, so the address can't be
      rejected at runtime. Remove the error-returns as this is now
      called from a function with no return.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      06ddeadc
    • James Morse's avatar
      ACPI / APEI: Generalise the estatus queue's notify code · ee2eb3d4
      James Morse authored
      Refactor the estatus queue's pool notification routine from
      NOTIFY_NMI's handlers. This will allow another notification
      method to use the estatus queue without duplicating this code.
      
      Add rcu_read_lock()/rcu_read_unlock() around the list
      list_for_each_entry_rcu() walker. These aren't strictly necessary as
      the whole nmi_enter/nmi_exit() window is a spooky RCU read-side
      critical section.
      
      in_nmi_queue_one_entry() is separate from the rcu-list walker for a
      later caller that doesn't need to walk a list.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarPunit Agrawal <punit.agrawal@arm.com>
      Tested-by: default avatarTyler Baicar <tbaicar@codeaurora.org>
      [ rjw: Drop unnecessary err variable in two places ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ee2eb3d4
    • James Morse's avatar
      ACPI / APEI: Don't update struct ghes' flags in read/clear estatus · 5cc6c682
      James Morse authored
      ghes_read_estatus() sets a flag in struct ghes if the buffer of
      CPER records needs to be cleared once the records have been
      processed. This flag value is a problem if a struct ghes can be
      processed concurrently, as happens at probe time if an NMI arrives
      for the same error source. The NMI clears the flag, meaning the
      interrupted handler may never do the ghes_estatus_clear() work.
      
      The GHES_TO_CLEAR flags is only set at the same time as
      buffer_paddr, which is now owned by the caller and passed to
      ghes_clear_estatus(). Use this value as the flag.
      
      A non-zero buf_paddr returned by ghes_read_estatus() means
      ghes_clear_estatus() should clear this address. ghes_read_estatus()
      already checks for a read of error_status_address being zero,
      so CPER records cannot be written here.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5cc6c682
    • James Morse's avatar
      ACPI / APEI: Remove spurious GHES_TO_CLEAR check · 7d49f2c7
      James Morse authored
      ghes_notify_nmi() checks ghes->flags for GHES_TO_CLEAR before going
      on to __process_error(). This is pointless as ghes_read_estatus()
      will always set this flag if it returns success, which was checked
      earlier in the loop. Remove it.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      7d49f2c7
    • James Morse's avatar
      ACPI / APEI: Don't store CPER records physical address in struct ghes · eeb25557
      James Morse authored
      When CPER records are found the address of the records is stashed
      in the struct ghes. Once the records have been processed, this
      address is overwritten with zero so that it won't be processed
      again without being re-populated by firmware.
      
      This goes wrong if a struct ghes can be processed concurrently,
      as can happen at probe time when an NMI occurs. If the NMI arrives
      on another CPU, the probing CPU may call ghes_clear_estatus() on the
      records before the handler had finished with them.
      Even on the same CPU, once the interrupted handler is resumed, it
      will call ghes_clear_estatus() on the NMIs records, this memory may
      have already been re-used by firmware.
      
      Avoid this stashing by letting the caller hold the address. A
      later patch will do away with the use of ghes->flags in the
      read/clear code too.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      eeb25557
    • James Morse's avatar
      ACPI / APEI: Make estatus pool allocation a static size · fb7be08f
      James Morse authored
      Adding new NMI-like notifications duplicates the calls that grow
      and shrink the estatus pool. This is all pretty pointless, as the
      size is capped to 64K. Allocate this for each ghes and drop
      the code that grows and shrinks the pool.
      Suggested-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      fb7be08f
    • James Morse's avatar
      ACPI / APEI: Make hest.c manage the estatus memory pool · e147133a
      James Morse authored
      ghes.c has a memory pool it uses for the estatus cache and the estatus
      queue. The cache is initialised when registering the platform driver.
      For the queue, an NMI-like notification has to grow/shrink the pool
      as it is registered and unregistered.
      
      This is all pretty noisy when adding new NMI-like notifications, it
      would be better to replace this with a static pool size based on the
      number of users.
      
      As a precursor, move the call that creates the pool from ghes_init(),
      into hest.c. Later this will take the number of ghes entries and
      consolidate the queue allocations.
      Remove ghes_estatus_pool_exit() as hest.c doesn't have anywhere to put
      this.
      
      The pool is now initialised as part of ACPI's subsys_initcall():
      (acpi_init(), acpi_scan_init(), acpi_pci_root_init(), acpi_hest_init())
      Before this patch it happened later as a GHES specific device_initcall().
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e147133a
    • James Morse's avatar
      ACPI / APEI: Switch estatus pool to use vmalloc memory · 0ac234be
      James Morse authored
      The ghes code is careful to parse and round firmware's advertised
      memory requirements for CPER records, up to a maximum of 64K.
      However when ghes_estatus_pool_expand() does its work, it splits
      the requested size into PAGE_SIZE granules.
      
      This means if firmware generates 5K of CPER records, and correctly
      describes this in the table, __process_error() will silently fail as it
      is unable to allocate more than PAGE_SIZE.
      
      Switch the estatus pool to vmalloc() memory. On x86 vmalloc() memory
      may fault and be fixed up by vmalloc_fault(). To prevent this call
      vmalloc_sync_all() before an NMI handler could discover the memory.
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0ac234be
    • James Morse's avatar
      ACPI / APEI: Remove silent flag from ghes_read_estatus() · 93066e9a
      James Morse authored
      Subsequent patches will split up ghes_read_estatus(), at which
      point passing around the 'silent' flag gets annoying. This is to
      suppress prink() messages, which prior to commit 42a0bb3f
      ("printk/nmi: generic solution for safe printk in NMI"), were
      unsafe in NMI context.
      
      This is no longer necessary, remove the flag. printk() messages
      are batched in a per-cpu buffer and printed via irq-work, or a call
      back from panic().
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      93066e9a
    • James Morse's avatar
      ACPI / APEI: Don't wait to serialise with oops messages when panic()ing · 78b0b690
      James Morse authored
      oops_begin() exists to group printk() messages with the oops message
      printed by die(). To reach this caller we know that platform firmware
      took this error first, then notified the OS via NMI with a 'panic'
      severity.
      
      Don't wait for another CPU to release the die-lock before panic()ing,
      our only goal is to print this fatal error and panic().
      
      This code is always called in_nmi(), and since commit 42a0bb3f
      ("printk/nmi: generic solution for safe printk in NMI"), it has been
      safe to call printk() from this context. Messages are batched in a
      per-cpu buffer and printed via irq-work, or a call back from panic().
      
      Link: https://patchwork.kernel.org/patch/10313555/Acked-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      78b0b690
  3. 14 Jan, 2019 3 commits
  4. 13 Jan, 2019 13 commits
    • Linus Torvalds's avatar
      Linux 5.0-rc2 · 1c7fc5cb
      Linus Torvalds authored
      1c7fc5cb
    • Jonathan Neuschäfer's avatar
      kernel/sys.c: Clarify that UNAME26 does not generate unique versions anymore · b7285b42
      Jonathan Neuschäfer authored
      UNAME26 is a mechanism to report Linux's version as 2.6.x, for
      compatibility with old/broken software.  Due to the way it is
      implemented, it would have to be updated after 5.0, to keep the
      resulting versions unique.  Linus Torvalds argued:
      
       "Do we actually need this?
      
        I'd rather let it bitrot, and just let it return random versions. It
        will just start again at 2.4.60, won't it?
      
        Anybody who uses UNAME26 for a 5.x kernel might as well think it's
        still 4.x. The user space is so old that it can't possibly care about
        differences between 4.x and 5.x, can it?
      
        The only thing that matters is that it shows "2.4.<largeenough>",
        which it will do regardless"
      Signed-off-by: default avatarJonathan Neuschäfer <j.neuschaefer@gmx.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b7285b42
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · dbc3c09b
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A bigger batch than I anticipated this week, for two reasons:
      
         - Some fallout on Davinci from board file -> DTB conversion, that
           also includes a few longer-standing fixes (i.e. not recent
           regressions).
      
         - drivers/reset material that has been in linux-next for a while, but
           didn't get sent to us until now for a variety of reasons
           (maintainer out sick, holidays, etc). There's a functional
           dependency in there such that one platform (Altera's SoCFPGA) won't
           boot without one of the patches; instead of reverting the patch
           that got merged, I looked at this set and decided it was small
           enough that I'll pick it up anyway. If you disagree I can revisit
           with a smaller set.
      
        That being said, there's also a handful of the usual stuff:
      
         - Fix for a crash on Armada 7K/8K when the kernel touches
           PSCI-reserved memory
      
         - Fix for PCIe reset on Macchiatobin (Armada 8K development board,
           what this email is sent from in fact :)
      
         - Enable a few new-merged modules for Amlogic in arm64 defconfig
      
         - Error path fixes on Integrator
      
         - Build fix for Renesas and Qualcomm
      
         - Initialization fix for Renesas RZ/G2E
      
        .. plus a few more fixlets"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
        ARM: integrator: impd1: use struct_size() in devm_kzalloc()
        qcom-scm: Include <linux/err.h> header
        gpio: pl061: handle failed allocations
        ARM: dts: kirkwood: Fix polarity of GPIO fan lines
        arm64: dts: marvell: mcbin: fix PCIe reset signal
        arm64: dts: marvell: armada-ap806: reserve PSCI area
        ARM: dts: da850-lcdk: Correct the sound card name
        ARM: dts: da850-lcdk: Correct the audio codec regulators
        ARM: dts: da850-evm: Correct the sound card name
        ARM: dts: da850-evm: Correct the audio codec regulators
        ARM: davinci: omapl138-hawk: fix label names in GPIO lookup entries
        ARM: davinci: dm644x-evm: fix label names in GPIO lookup entries
        ARM: davinci: dm355-evm: fix label names in GPIO lookup entries
        ARM: davinci: da850-evm: fix label names in GPIO lookup entries
        ARM: davinci: da830-evm: fix label names in GPIO lookup entries
        arm64: defconfig: enable modules for amlogic s400 sound card
        reset: uniphier-glue: Add AHCI reset control support in glue layer
        dt-bindings: reset: uniphier: Add AHCI core reset description
        reset: uniphier-usb3: Rename to reset-uniphier-glue
        dt-bindings: reset: uniphier: Replace the expression of USB3 with generic peripherals
        ...
      dbc3c09b
    • Linus Torvalds's avatar
      Merge tag 'for-5.0-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 6b529fb0
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
      
       - two regression fixes in clone/dedupe ioctls, the generic check
         callback needs to lock extents properly and wait for io to avoid
         problems with writeback and relocation
      
       - fix deadlock when using free space tree due to block group creation
      
       - a recently added check refuses a valid fileystem with seeding device,
         make that work again with a quickfix, proper solution needs more
         intrusive changes
      
      * tag 'for-5.0-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: Use real device structure to verify dev extent
        Btrfs: fix deadlock when using free space tree due to block group creation
        Btrfs: fix race between reflink/dedupe and relocation
        Btrfs: fix race between cloning range ending at eof and writeback
      6b529fb0
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 72d657dd
      Linus Torvalds authored
      Pull driver core fixes from Greg KH:
       "Here is one small sysfs change, and a documentation update for 5.0-rc2
      
        The sysfs change moves from using BUG_ON to WARN_ON, as discussed in
        an email thread on lkml while trying to track down another driver bug.
        sysfs should not be crashing and preventing people from seeing where
        they went wrong. Now it properly recovers and warns the developer.
      
        The documentation update removes the use of BUS_ATTR() as the kernel
        is moving away from this to use the specific BUS_ATTR_RW() and friends
        instead. There are pending patches in all of the different subsystems
        to remove the last users of this macro, but for now, don't advertise
        it should be used anymore to keep new ones from being introduced.
      
        Both have been in linux-next with no reported issues"
      
      * tag 'driver-core-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        Documentation: driver core: remove use of BUS_ATTR
        sysfs: convert BUG_ON to WARN_ON
      72d657dd
    • Linus Torvalds's avatar
      Merge tag 'staging-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · f7c1038b
      Linus Torvalds authored
      Pull staging driver fixes from Greg KH:
       "Here are some small staging driver fixes for some reported issues.
      
        One reverts a patch that was made to the rtl8723bs driver that turned
        out to not be needed at all as it was a bug in clang. The others fix
        up some reported issues in the rtl8188eu driver and update the
        MAINTAINERS file to point to Larry for this driver so he can get the
        bug reports easier.
      
        All have been in linux-next with no reported issues"
      
      * tag 'staging-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        Revert "staging: rtl8723bs: Mark ACPI table declaration as used"
        staging: rtl8188eu: Fix module loading from tasklet for WEP encryption
        staging: rtl8188eu: Fix module loading from tasklet for CCMP encryption
        MAINTAINERS: Add entry for staging driver r8188eu
      f7c1038b
    • Linus Torvalds's avatar
      Merge tag 'tty-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 437e878a
      Linus Torvalds authored
      Pull tty/serial fixes from Greg KH:
       "Here are 2 tty and serial fixes for 5.0-rc2 that resolve some reported
        issues.
      
        The first is a simple serial driver fix for a regression that showed
        up in 5.0-rc1. The second one resolves a number of reported issues
        with the recent tty locking fixes that went into 5.0-rc1. Lots of
        people have tested the second one and say it resolves their issues.
      
        Both have been in linux-next with no reported issues"
      
      * tag 'tty-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: Don't hold ldisc lock in tty_reopen() if ldisc present
        serial: lantiq: Do not swap register read/writes
      437e878a
    • Linus Torvalds's avatar
      Merge tag 'usb-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 1dd8a3f6
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some small USB driver fixes and quirk updates for 5.0-rc2.
      
        The majority here are some quirks for some storage devices to get them
        to work properly. There's also a fix here to resolve the reported
        issues with some audio devices that say they are UAC3 compliant, but
        really are not.
      
        And a fix up for the MAINTAINERS file to remove a dead url.
      
        All have been in linux-next with no reported issues"
      
      * tag 'usb-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: storage: Remove outdated URL from MAINTAINERS
        USB: Add USB_QUIRK_DELAY_CTRL_MSG quirk for Corsair K70 RGB
        usbcore: Select only first configuration for non-UAC3 compliant devices
        USB: storage: add quirk for SMI SM3350
        USB: storage: don't insert sane sense for SPC3+ when bad sense specified
        usb: cdc-acm: send ZLP for Telit 3G Intel based modems
      1dd8a3f6
    • Linus Torvalds's avatar
      Merge tag '5.0-rc1-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 0f9d140a
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "A set of cifs/smb3 fixes, 4 for stable, most from Pavel. His patches
        fix an important set of crediting (flow control) problems, and also
        two problems in cifs_writepages, ddressing some large i/o and also
        compounding issues"
      
      * tag '5.0-rc1-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: update internal module version number
        CIFS: Fix error paths in writeback code
        CIFS: Move credit processing to mid callbacks for SMB3
        CIFS: Fix credits calculation for cancelled requests
        cifs: Fix potential OOB access of lock element array
        cifs: Limit memory used by lock request calls to a page
        cifs: move large array from stack to heap
        CIFS: Do not hide EINTR after sending network packets
        CIFS: Fix credit computation for compounded requests
        CIFS: Do not set credits to 1 if the server didn't grant anything
        CIFS: Fix adjustment of credits for MTU requests
        cifs: Fix a tiny potential memory leak
        cifs: Fix a debug message
      0f9d140a
    • Olof Johansson's avatar
      Merge tag 'reset-for-5.0-rc2' of git://git.pengutronix.de/git/pza/linux into fixes · 46561217
      Olof Johansson authored
      Late reset controller changes for v5.0
      
      This adds missing deassert functionality to the ARC HSDK reset driver,
      fixes some indentation and grammar issues in the kernel docs, adds a
      helper to count the number of resets on a device for the non-DT case
      as well, adds an early reset driver for SoCFPGA and simple reset driver
      support for Stratix10, and generalizes the uniphier USB3 glue layer
      reset to also cover AHCI.
      
      * tag 'reset-for-5.0-rc2' of git://git.pengutronix.de/git/pza/linux:
        reset: uniphier-glue: Add AHCI reset control support in glue layer
        dt-bindings: reset: uniphier: Add AHCI core reset description
        reset: uniphier-usb3: Rename to reset-uniphier-glue
        dt-bindings: reset: uniphier: Replace the expression of USB3 with generic peripherals
        ARM: socfpga: dts: document "altr,stratix10-rst-mgr" binding
        reset: socfpga: add an early reset driver for SoCFPGA
        reset: fix null pointer dereference on dev by dev_name
        reset: Add reset_control_get_count()
        reset: Improve reset controller kernel docs
        ARC: HSDK: improve reset driver
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      46561217
    • Olof Johansson's avatar
      Merge tag 'mvebu-fixes-5.0-1' of git://git.infradead.org/linux-mvebu into fixes · 56acb3ef
      Olof Johansson authored
      mvebu fixes for 5.0
      
      They are all device tree fixes which also worth being in stable:
      
       - Reserve PSCI area on Armada 7K/8K preventing the kernel accessing
         this area and crashing while doing it.
      
       - Use correct PCIe reset signal on MACCHIATOBin  (Armada 8040 based)
      
       - Fix polarity of GPIO fan line D-Link DNS NASes(kikwood based)
      
      * tag 'mvebu-fixes-5.0-1' of git://git.infradead.org/linux-mvebu:
        ARM: dts: kirkwood: Fix polarity of GPIO fan lines
        arm64: dts: marvell: mcbin: fix PCIe reset signal
        arm64: dts: marvell: armada-ap806: reserve PSCI area
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      56acb3ef
    • Olof Johansson's avatar
      Merge tag 'integrator-fixes-armsoc' of... · 2ec472ed
      Olof Johansson authored
      Merge tag 'integrator-fixes-armsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into fixes
      
      Fixes for the Integrator:
      - Handle failed allocations in the IM/PC bus attachment.
      - Use struct_size() for allocation.
      
      * tag 'integrator-fixes-armsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
        ARM: integrator: impd1: use struct_size() in devm_kzalloc()
        gpio: pl061: handle failed allocations
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      2ec472ed
    • Olof Johansson's avatar
      Merge tag 'amlogic-fixes' of... · 431a8b73
      Olof Johansson authored
      Merge tag 'amlogic-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into fixes
      
      Amlogic DT fixes for v5.0-rc
      - arm64: defconfig: enable modules for amlogic s400 sound card
      
      * tag 'amlogic-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
        arm64: defconfig: enable modules for amlogic s400 sound card
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      431a8b73