1. 16 Jan, 2020 4 commits
  2. 14 Jan, 2020 12 commits
  3. 10 Jan, 2020 1 commit
  4. 12 Dec, 2019 11 commits
    • Pierre-Louis Bossart's avatar
      soundwire: intel: add clock stop quirks · 09f6a72d
      Pierre-Louis Bossart authored
      Due to power rail dependencies, the SoundWire Master driver cannot
      make decisions on its own when entering pm runtime suspend.
      
      Add quirk mask for each link, so that the SOF parent driver can inform
      the SoundWire master driver of the desired behavior:
      a) leave clock on
      b) power-off instead of clock stop
      c) power-off if all devices cannot generate wakes
      d) force bus reset on clock restart
      
      Note that for now the interface with the SOF driver relies on a single
      mask for all links. If needed, the interface might be modified at a
      later point to provide more freedom. The code at the lower level does
      not assume any commonality between links.
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-12-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      09f6a72d
    • Pierre-Louis Bossart's avatar
      soundwire: intel: add mutex for shared SHIM register access · 4da0680f
      Pierre-Louis Bossart authored
      Some of the Intel SoundWire SHIM registers contain fields for
      different links. Without protection, the master drivers for the
      different links will access these shared registers, leading to invalid
      configurations and timeouts (specifically when changing CPA/SPA
      power-related registers and polling for the changes to be applied).
      
      A mutex is added to make sure all rmw access to those registers are
      serialized.
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-11-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      4da0680f
    • Rander Wang's avatar
      soundwire: intel: add prototype for WAKEEN interrupt processing · 905b5a81
      Rander Wang authored
      In ClockStop mode, the PCI device will be notified of a wake, which
      will be handled from an interrupt thread.
      Signed-off-by: default avatarRander Wang <rander.wang@intel.com>
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-10-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      905b5a81
    • Bard Liao's avatar
      soundwire: intel: add link_list to handle interrupts with a single thread · eae0b60d
      Bard Liao authored
      In MSI mode, the use of separate handlers and threads for the Intel
      IPC, stream and SoundWire shared interrupt leads to timeouts and lost
      interrupts.
      
      The solution is to merge all interrupt handling across all links with
      a single thread function. The use of a linked list enables this thread
      function to walk through all contexts and figure out which link needs
      attention.
      Signed-off-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-9-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      eae0b60d
    • Bard Liao's avatar
      soundwire: intel: update headers for interrupts · 6cd1d670
      Bard Liao authored
      The existing use of 6 handlers is problematic in MSI mode. Update
      headers so that all shared interrupts can be handled with a single
      handler.
      Signed-off-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-8-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      6cd1d670
    • Rander Wang's avatar
      soundwire: intel: update stream callbacks for hwparams/free stream operations · 4b206d34
      Rander Wang authored
      The SoundWire DAIs for Intel platform are created in
      drivers/soundwire/intel.c, while the communication with the Intel DSP
      is all controlled in soc/sof/intel
      
      When the DAI status changes, a callback is used to bridge the gap
      between the two subsystems.
      
      The naming of the existing 'config_stream' callback does not map well
      with any of ALSA/ASoC concepts. This patch renames it as
      'params_stream' to be more self-explanatory.
      
      A new 'free_stream' callback is added in case any resources allocated
      in the 'params_stream' stage need to be released. In the SOF
      implementation, this is used in the hw_free case to release the DMA
      channels over IPC.
      
      These two callbacks now rely on structures which expose the link_id
      and alh_stream_id (required by the firmware IPC), instead of a list of
      parameters. The 'void *' definitions are changed to use explicit
      types, as suggested on alsa-devel during earlier reviews.
      Signed-off-by: default avatarRander Wang <rander.wang@linux.intel.com>
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-7-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      4b206d34
    • Pierre-Louis Bossart's avatar
      soundwire: intel: update interfaces between ASoC and SoundWire · f98f690f
      Pierre-Louis Bossart authored
      The current interfaces between ASoC and SoundWire are limited by the
      platform_device infrastructure to an init() and exit() (mapped to the
      platform driver.probe and .remove)
      
      To help with the platform detection, machine driver selection and
      management of power dependencies between DSP and SoundWire IP, the
      ASoC side requires:
      
      a) an ACPI scan helper, to report if any devices are exposed in the
      DSDT tables, and if any links are disabled by the BIOS.
      
      b) a probe helper that allocates the resources without actually
      starting the bus.
      
      c) a startup helper which does start the bus when all power
      dependencies are settled.
      
      d) an exit helper to free all resources
      
      e) an interrupt_enable/disable helper, typically invoked after the
      startup helper but also used in suspend routines.
      
      This patch moves all required interfaces to sdw_intel.h, mainly to
      allow SoundWire and ASoC parts to be merged separately once the header
      files are shared between trees.
      
      To avoid compilation issues, the conflicts in intel_init.c are blindly
      removed. This would in theory prevent the code from working, but since
      there are no users of the Intel Soundwire driver this has no
      impact. Functionality will be restored when the removal of platform
      devices is complete.
      
      Support for SoundWire + SOF builds will only be provided once all the
      required pieces are upstream.
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-6-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      f98f690f
    • Pierre-Louis Bossart's avatar
      soundwire: sdw_slave: track unattach_request to handle all init sequences · b2bd75f8
      Pierre-Louis Bossart authored
      The Slave device initialization can be split in 4 different cases:
      
      1. Master-initiated hardware reset, system suspend-resume and
      pm_runtime based on clock-stop mode1. To avoid timeouts and a bad
      audio experience, the Slave device resume operations need to wait for
      the Slave device to be re-enumerated and its settings restored.
      
      2. Exit from clock-stop mode0. In this case, the Slave device is
      required to remain enumerated and its context preserved while the
      clock is stopped, so no re-initialization or wait_for_completion() is
      necessary.
      
      3. Slave-initiated pm_runtime D3 transition. With the parent child
      relationship, it is possible that a Slave device becomes 'suspended'
      while its parent is still 'active' with the bus clock still
      toggling. In this case, during the pm_runtime resume operation, there
      is no need to wait for any settings to be restored.
      
      4. Slave reset (sync loss or implementation-defined). In that case the
      bus remains operational and the Slave device will be re-initialized
      when it becomes ATTACHED again.
      
      In previous patches, we suggested the use of wait_for_completion() to
      deal with the case #1, but case #2 and #3 do not need any wait.
      
      To account for those differences, this patch adds an unattach_request
      field. The field is explicitly set by the Master for the case #1, and
      if non-zero the Slave device shall wait on resume. In all other cases,
      the Slave resume operations can proceed without wait.
      
      The only request tracked so far is Master HardReset, but the request
      is declared as a bit mask for future extensions (if needed). The
      definition for this value is added in bus.h and does not need to be
      exposed in sdw.h
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-5-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      b2bd75f8
    • Pierre-Louis Bossart's avatar
      soundwire: sdw_slave: add initialization_complete definition · 7afc50e4
      Pierre-Louis Bossart authored
      Slave drivers may have different ways of handling their settings, with
      or without regmap.
      
      During the integration of codec drivers, done in partnership between
      Intel and Realtek, it became desirable to implement a predictable
      order between low-level initializations performed in .update_status()
      (invoked by an interrupt thread) and the settings restored in the
      resume steps (invoked by the PM core).
      
      This patch builds on the previous solution to wait for the Slave
      device to be fully enumerated. The complete() in this case is signaled
      not before the .update_status() is called, but after .update_status()
      returns. Without this patch, the settings were not properly restored,
      leading to timing-dependent 'no sound after resume' or 'no headset
      detected after resume' bug reports.
      
      Depending on how initialization is handled, a Slave device driver may
      wait for enumeration_complete, or for initialization_complete, both
      are valid synchronization points. They are initialized at the same
      time, they only differ on when complete() is invoked.
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-4-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      7afc50e4
    • Pierre-Louis Bossart's avatar
      soundwire: sdw_slave: add enumeration_complete structure · fbbff363
      Pierre-Louis Bossart authored
      When the Master starts the bus (be it during the initial boot or
      system resume), it usually performs a HardReset to make sure
      electrical levels are correct, then enables the control channel.
      
      While the PM framework guarantees that the Slave devices will only
      become 'active' once the Master completes the bus initialization,
      there is still a risk of a race condition: the Slave enumeration is
      handled in a separate interrupt thread triggered by hardware status
      changes, so the Slave device may not be ready to accept commands when
      the Slave driver tries to access the registers and restore settings in
      its resume or pm_runtime_resume callbacks. In those cases, any
      read/write commands from/to the Slave device will result in a timeout.
      
      This patch adds an enumeration_complete structure. When the bus is
      goes through a HardReset sequence and restarted, the Slave will be
      marked as UNATTACHED, which will result in a call to
      init_completion().
      
      When the Slave reports its presence during PING frames as a non-zero
      Device, the Master hardware will issue an interrupt and the bus driver
      will invoke complete(). The order between init_completion()/complete()
      is predictable since this is a Master-initiated transition.
      
      The Slave driver may use wait_for_completion() in its resume callback.
      When regmap is used, the Slave driver will typically set its regmap in
      cache-only mode on suspend, then on resume block on
      wait_for_completion(&enumeration_complete) to guarantee it is safe to
      start read/write transactions. It may then exit the cache-only mode
      and use a regmap_sync to restore settings. All these steps are
      optional, their use completely depends on the Slave device
      capabilities and how the Slave driver is implemented.
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-3-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      fbbff363
    • Pierre-Louis Bossart's avatar
      soundwire: sdw_slave: add probe_complete structure and new fields · 528be501
      Pierre-Louis Bossart authored
      When a Slave device becomes synchronized with the bus, it may report
      its presence in PING frames, as well as optionally asserting an
      in-band PREQ signal.
      
      The bus driver will detect a new Device0, start the enumeration
      process and assign it a non-zero device number. The SoundWire
      enumeration provides an arbitration to deal with multiple Slaves
      reporting ATTACHED at the same time. The bus driver will also invoke
      the driver .probe() callback associated with this device. The probe()
      depends on the Linux device core, which handles the match operations
      and may result in modules being loaded.
      
      Once the non-zero device number is programmed, the Slave will report
      its new status in PING frames and the Master hardware will typically
      report this status change with an interrupt. At this point, the
      .update_status() callback of the codec driver will be invoked (usually
      from an interrupt thread or workqueue scheduled from the interrupt
      thread).
      
      The first race condition which can happen is between the .probe(),
      which allocates the resources, and .update_status() where
      initializations are typically handled. The .probe() is only called
      once during the initial boot, while .update_status() will be called
      for every bus hardware reset and if the Slave device loses
      synchronization (an unlikely event but with non-zero probability).
      
      The time difference between the end of the enumeration process and a
      change of status reported by the hardware may be as small as one
      SoundWire PING frame. The scheduling of the interrupt thread, which
      invokes .update_status() is not deterministic, but can be small enough
      to create a race condition. With a 48 kHz frame rate and ideal
      scheduling cases, the .probe() may be pre-empted within double-digit
      microseconds.
      
      Since there is no guarantee that the .probe() completes by the time
      .update_status() is invoked as a result of an interrupt, it's not
      unusual for the .update_status() to rely on data structures that have
      not been allocated yet, leading to kernel oopses.
      
      This patch adds a probe_complete utility, which is used in the
      sdw_update_slave_status() routine. The codec driver does not need to
      do anything and can safely assume all resources are allocated in its
      update_status() callback.
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Link: https://lore.kernel.org/r/20191212014507.28050-2-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      528be501
  5. 08 Dec, 2019 12 commits
    • Linus Torvalds's avatar
      Linux 5.5-rc1 · e42617b8
      Linus Torvalds authored
      e42617b8
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 95e6ba51
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) More jumbo frame fixes in r8169, from Heiner Kallweit.
      
       2) Fix bpf build in minimal configuration, from Alexei Starovoitov.
      
       3) Use after free in slcan driver, from Jouni Hogander.
      
       4) Flower classifier port ranges don't work properly in the HW offload
          case, from Yoshiki Komachi.
      
       5) Use after free in hns3_nic_maybe_stop_tx(), from Yunsheng Lin.
      
       6) Out of bounds access in mqprio_dump(), from Vladyslav Tarasiuk.
      
       7) Fix flow dissection in dsa TX path, from Alexander Lobakin.
      
       8) Stale syncookie timestampe fixes from Guillaume Nault.
      
      [ Did an evil merge to silence a warning introduced by this pull - Linus ]
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (84 commits)
        r8169: fix rtl_hw_jumbo_disable for RTL8168evl
        net_sched: validate TCA_KIND attribute in tc_chain_tmplt_add()
        r8169: add missing RX enabling for WoL on RTL8125
        vhost/vsock: accept only packets with the right dst_cid
        net: phy: dp83867: fix hfs boot in rgmii mode
        net: ethernet: ti: cpsw: fix extra rx interrupt
        inet: protect against too small mtu values.
        gre: refetch erspan header from skb->data after pskb_may_pull()
        pppoe: remove redundant BUG_ON() check in pppoe_pernet
        tcp: Protect accesses to .ts_recent_stamp with {READ,WRITE}_ONCE()
        tcp: tighten acceptance of ACKs not matching a child socket
        tcp: fix rejected syncookies due to stale timestamps
        lpc_eth: kernel BUG on remove
        tcp: md5: fix potential overestimation of TCP option space
        net: sched: allow indirect blocks to bind to clsact in TC
        net: core: rename indirect block ingress cb function
        net-sysfs: Call dev_hold always in netdev_queue_add_kobject
        net: dsa: fix flow dissection on Tx path
        net/tls: Fix return values to avoid ENOTSUPP
        net: avoid an indirect call in ____sys_recvmsg()
        ...
      95e6ba51
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 138f371d
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "Eleven patches, all in drivers (no core changes) that are either minor
        cleanups or small fixes.
      
        They were late arriving, but still safe for -rc1"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: MAINTAINERS: Add the linux-scsi mailing list to the ISCSI entry
        scsi: megaraid_sas: Make poll_aen_lock static
        scsi: sd_zbc: Improve report zones error printout
        scsi: qla2xxx: Fix qla2x00_request_irqs() for MSI
        scsi: qla2xxx: unregister ports after GPN_FT failure
        scsi: qla2xxx: fix rports not being mark as lost in sync fabric scan
        scsi: pm80xx: Remove unused include of linux/version.h
        scsi: pm80xx: fix logic to break out of loop when register value is 2 or 3
        scsi: scsi_transport_sas: Fix memory leak when removing devices
        scsi: lpfc: size cpu map by last cpu id set
        scsi: ibmvscsi_tgt: Remove unneeded variable rc
      138f371d
    • Linus Torvalds's avatar
      Merge tag '5.5-rc-smb3-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6 · a78f7cdd
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Nine cifs/smb3 fixes:
      
         - one fix for stable (oops during oplock break)
      
         - two timestamp fixes including important one for updating mtime at
           close to avoid stale metadata caching issue on dirty files (also
           improves perf by using SMB2_CLOSE_FLAG_POSTQUERY_ATTRIB over the
           wire)
      
         - two fixes for "modefromsid" mount option for file create (now
           allows mode bits to be set more atomically and accurately on create
           by adding "sd_context" on create when modefromsid specified on
           mount)
      
         - two fixes for multichannel found in testing this week against
           different servers
      
         - two small cleanup patches"
      
      * tag '5.5-rc-smb3-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
        smb3: improve check for when we send the security descriptor context on create
        smb3: fix mode passed in on create for modetosid mount option
        cifs: fix possible uninitialized access and race on iface_list
        cifs: Fix lookup of SMB connections on multichannel
        smb3: query attributes on file close
        smb3: remove unused flag passed into close functions
        cifs: remove redundant assignment to pointer pneg_ctxt
        fs: cifs: Fix atime update check vs mtime
        CIFS: Fix NULL-pointer dereference in smb2_push_mandatory_locks
      a78f7cdd
    • Linus Torvalds's avatar
      Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 5bf9a06a
      Linus Torvalds authored
      Pull misc vfs cleanups from Al Viro:
       "No common topic, just three cleanups".
      
      * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        make __d_alloc() static
        fs/namespace: add __user to open_tree and move_mount syscalls
        fs/fnctl: fix missing __user in fcntl_rw_hint()
      5bf9a06a
    • Linus Torvalds's avatar
      Merge tag 'ntb-5.5' of git://github.com/jonmason/ntb · 9455d25f
      Linus Torvalds authored
      Pull NTB update from Jon Mason:
       "Just a simple patch to add a new Hygon Device ID to the AMD NTB device
        driver"
      
      * tag 'ntb-5.5' of git://github.com/jonmason/ntb:
        NTB: Add Hygon Device ID
      9455d25f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 73721451
      Linus Torvalds authored
      Pull more input updates from Dmitry Torokhov:
      
       - fixups for Synaptics RMI4 driver
      
       - a quirk for Goodinx touchscreen on Teclast tablet
      
       - a new keycode definition for activating privacy screen feature found
         on a few "enterprise" laptops
      
       - updates to snvs_pwrkey driver
      
       - polling uinput device for writing (which is always allowed) now works
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers
        Input: synaptics-rmi4 - re-enable IRQs in f34v7_do_reflash
        Input: goodix - add upside-down quirk for Teclast X89 tablet
        Input: add privacy screen toggle keycode
        Input: uinput - fix returning EPOLLOUT from uinput_poll
        Input: snvs_pwrkey - remove gratuitous NULL initializers
        Input: snvs_pwrkey - send key events for i.MX6 S, DL and Q
      73721451
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.5-merge-14' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 95207d55
      Linus Torvalds authored
      Pull iomap fixes from Darrick Wong:
       "Fix a race condition and a use-after-free error:
      
         - Fix a UAF when reporting writeback errors
      
         - Fix a race condition when handling page uptodate on fragmented file
           with blocksize < pagesize"
      
      * tag 'iomap-5.5-merge-14' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: stop using ioend after it's been freed in iomap_finish_ioend()
        iomap: fix sub-page uptodate handling
      95207d55
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.5-merge-17' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 50caca9d
      Linus Torvalds authored
      Pull xfs fixes from Darrick Wong:
       "Fix a couple of resource management errors and a hang:
      
         - fix a crash in the log setup code when log mounting fails
      
         - fix a hang when allocating space on the realtime device
      
         - fix a block leak when freeing space on the realtime device"
      
      * tag 'xfs-5.5-merge-17' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: fix mount failure crash on invalid iclog memory access
        xfs: don't check for AG deadlock for realtime files in bunmapi
        xfs: fix realtime file data space leak
      50caca9d
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.5-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux · 316933cf
      Linus Torvalds authored
      Pull orangefs update from Mike Marshall:
       "orangefs: posix open permission checking...
      
        Orangefs has no open, and orangefs checks file permissions on each
        file access. Posix requires that file permissions be checked on open
        and nowhere else. Orangefs-through-the-kernel needs to seem posix
        compliant.
      
        The VFS opens files, even if the filesystem provides no method. We can
        see if a file was successfully opened for read and or for write by
        looking at file->f_mode.
      
        When writes are flowing from the page cache, file is no longer
        available. We can trust the VFS to have checked file->f_mode before
        writing to the page cache.
      
        The mode of a file might change between when it is opened and IO
        commences, or it might be created with an arbitrary mode.
      
        We'll make sure we don't hit EACCES during the IO stage by using
        UID 0"
      
      [ This is "posixish", but not a great solution in the long run, since a
        proper secure network server shouldn't really trust the client like this.
        But proper and secure POSIX behavior requires an open method and a
        resulting cookie for IO of some kind, or similar.    - Linus ]
      
      * tag 'for-linus-5.5-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
        orangefs: posix open permission checking...
      316933cf
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.5' of git://linux-nfs.org/~bfields/linux · 911d137a
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "This is a relatively quiet cycle for nfsd, mainly various bugfixes.
      
        Possibly most interesting is Trond's fixes for some callback races
        that were due to my incomplete understanding of rpc client shutdown.
        Unfortunately at the last minute I've started noticing a new
        intermittent failure to send callbacks. As the logic seems basically
        correct, I'm leaving Trond's patches in for now, and hope to find a
        fix in the next week so I don't have to revert those patches"
      
      * tag 'nfsd-5.5' of git://linux-nfs.org/~bfields/linux: (24 commits)
        nfsd: depend on CRYPTO_MD5 for legacy client tracking
        NFSD fixing possible null pointer derefering in copy offload
        nfsd: check for EBUSY from vfs_rmdir/vfs_unink.
        nfsd: Ensure CLONE persists data and metadata changes to the target file
        SUNRPC: Fix backchannel latency metrics
        nfsd: restore NFSv3 ACL support
        nfsd: v4 support requires CRYPTO_SHA256
        nfsd: Fix cld_net->cn_tfm initialization
        lockd: remove __KERNEL__ ifdefs
        sunrpc: remove __KERNEL__ ifdefs
        race in exportfs_decode_fh()
        nfsd: Drop LIST_HEAD where the variable it declares is never used.
        nfsd: document callback_wq serialization of callback code
        nfsd: mark cb path down on unknown errors
        nfsd: Fix races between nfsd4_cb_release() and nfsd4_shutdown_callback()
        nfsd: minor 4.1 callback cleanup
        SUNRPC: Fix svcauth_gss_proxy_init()
        SUNRPC: Trace gssproxy upcall results
        sunrpc: fix crash when cache_head become valid before update
        nfsd: remove private bin2hex implementation
        ...
      911d137a
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-5.5-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · fb9bf40c
      Linus Torvalds authored
      Pull NFS client updates from Trond Myklebust:
       "Highlights include:
      
        Features:
      
         - NFSv4.2 now supports cross device offloaded copy (i.e. offloaded
           copy of a file from one source server to a different target
           server).
      
         - New RDMA tracepoints for debugging congestion control and Local
           Invalidate WRs.
      
        Bugfixes and cleanups
      
         - Drop the NFSv4.1 session slot if nfs4_delegreturn_prepare waits for
           layoutreturn
      
         - Handle bad/dead sessions correctly in nfs41_sequence_process()
      
         - Various bugfixes to the delegation return operation.
      
         - Various bugfixes pertaining to delegations that have been revoked.
      
         - Cleanups to the NFS timespec code to avoid unnecessary conversions
           between timespec and timespec64.
      
         - Fix unstable RDMA connections after a reconnect
      
         - Close race between waking an RDMA sender and posting a receive
      
         - Wake pending RDMA tasks if connection fails
      
         - Fix MR list corruption, and clean up MR usage
      
         - Fix another RPCSEC_GSS issue with MIC buffer space"
      
      * tag 'nfs-for-5.5-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (79 commits)
        SUNRPC: Capture completion of all RPC tasks
        SUNRPC: Fix another issue with MIC buffer space
        NFS4: Trace lock reclaims
        NFS4: Trace state recovery operation
        NFSv4.2 fix memory leak in nfs42_ssc_open
        NFSv4.2 fix kfree in __nfs42_copy_file_range
        NFS: remove duplicated include from nfs4file.c
        NFSv4: Make _nfs42_proc_copy_notify() static
        NFS: Fallocate should use the nfs4_fattr_bitmap
        NFS: Return -ETXTBSY when attempting to write to a swapfile
        fs: nfs: sysfs: Remove NULL check before kfree
        NFS: remove unneeded semicolon
        NFSv4: add declaration of current_stateid
        NFSv4.x: Drop the slot if nfs4_delegreturn_prepare waits for layoutreturn
        NFSv4.x: Handle bad/dead sessions correctly in nfs41_sequence_process()
        nfsv4: Move NFSPROC4_CLNT_COPY_NOTIFY to end of list
        SUNRPC: Avoid RPC delays when exiting suspend
        NFS: Add a tracepoint in nfs_fh_to_dentry()
        NFSv4: Don't retry the GETATTR on old stateid in nfs4_delegreturn_done()
        NFSv4: Handle NFS4ERR_OLD_STATEID in delegreturn
        ...
      fb9bf40c