1. 25 Aug, 2020 20 commits
    • Igor Russkikh's avatar
      qed: health reporter init deinit seq · 9524067b
      Igor Russkikh authored
      Here we declare health reporter ops (empty for now)
      and register these in qed probe and remove callbacks.
      
      This way we get devlink attached to all kind of qed* PCI
      device entities: networking or storage offload entity.
      Signed-off-by: default avatarIgor Russkikh <irusskikh@marvell.com>
      Signed-off-by: default avatarAlexander Lobakin <alobakin@marvell.com>
      Signed-off-by: default avatarMichal Kalderon <michal.kalderon@marvell.com>
      Reviewed-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9524067b
    • Igor Russkikh's avatar
      qed: implement devlink info request · 53916a67
      Igor Russkikh authored
      Here we return existing fw & mfw versions, we also fetch device's
      serial number:
      
      ~$ sudo ~/iproute2/devlink/devlink  dev info
      pci/0000:01:00.1:
        driver qed
        board.serial_number REE1915E44552
        versions:
            running:
              fw.app 8.42.2.0
            stored:
              fw.mgmt 8.52.10.0
      
      MFW and FW are different firmwares on device.
      Management is a firmware responsible for link configuration and
      various control plane features. Its permanent and resides in NVM.
      
      Running FW (or fastpath FW) is an embedded microprogram implementing
      all the packet processing, offloads, etc. This FW is being loaded
      on each start by the driver from FW binary blob.
      
      The base device specific structure (qed_dev_info) was not directly
      available to the base driver before. Thus, here we create and store
      a private copy of this structure in qed_dev root object to
      access the data.
      Signed-off-by: default avatarIgor Russkikh <irusskikh@marvell.com>
      Signed-off-by: default avatarAlexander Lobakin <alobakin@marvell.com>
      Signed-off-by: default avatarMichal Kalderon <michal.kalderon@marvell.com>
      Reviewed-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      53916a67
    • Igor Russkikh's avatar
      qed: fix kconfig help entries · b75d05b2
      Igor Russkikh authored
      This patch replaces stubs in kconfig help entries with an actual description.
      Signed-off-by: default avatarIgor Russkikh <irusskikh@marvell.com>
      Signed-off-by: default avatarAlexander Lobakin <alobakin@marvell.com>
      Signed-off-by: default avatarMichal Kalderon <michal.kalderon@marvell.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b75d05b2
    • Igor Russkikh's avatar
      qed/qede: make devlink survive recovery · 755f982b
      Igor Russkikh authored
      Devlink instance lifecycle was linked to qed_dev object,
      that caused devlink to be recreated on each recovery.
      
      Changing it by making higher level driver (qede) responsible for its
      life. This way devlink now survives recoveries.
      
      qede now stores devlink structure pointer as a part of its device
      object, devlink private data contains a linkage structure,
      qed_devlink.
      Signed-off-by: default avatarIgor Russkikh <irusskikh@marvell.com>
      Signed-off-by: default avatarAlexander Lobakin <alobakin@marvell.com>
      Signed-off-by: default avatarMichal Kalderon <michal.kalderon@marvell.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      755f982b
    • Igor Russkikh's avatar
      qed: move out devlink logic into a new file · 52306dee
      Igor Russkikh authored
      We are extending devlink infrastructure, thus move the existing
      stuff into a new file qed_devlink.c
      Signed-off-by: default avatarIgor Russkikh <irusskikh@marvell.com>
      Signed-off-by: default avatarAlexander Lobakin <alobakin@marvell.com>
      Signed-off-by: default avatarMichal Kalderon <michal.kalderon@marvell.com>
      Reviewed-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      52306dee
    • Christophe JAILLET's avatar
      chelsio: switch from 'pci_' to 'dma_' API · 9ab90179
      Christophe JAILLET authored
      The wrappers in include/linux/pci-dma-compat.h should go away.
      
      The patch has been generated with the coccinelle script below and has been
      hand modified to replace GFP_ with a correct flag.
      It has been compile tested.
      
      When memory is allocated in 'free_rx_resources()' and
      'alloc_tx_resources()' (sge.c) GFP_KERNEL can be used because it is
      already used in these functions.
      
      Moreover, they can only be called from a .ndo_open	function. So it is
      guarded by the 'rtnl_lock()', which is a mutex.
      
      While at it, a pr_err message in 'init_one()' has been updated accordingly
      (s/consistent/coherent).
      
      @@
      @@
      -    PCI_DMA_BIDIRECTIONAL
      +    DMA_BIDIRECTIONAL
      
      @@
      @@
      -    PCI_DMA_TODEVICE
      +    DMA_TO_DEVICE
      
      @@
      @@
      -    PCI_DMA_FROMDEVICE
      +    DMA_FROM_DEVICE
      
      @@
      @@
      -    PCI_DMA_NONE
      +    DMA_NONE
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_alloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_zalloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_free_consistent(e1, e2, e3, e4)
      +    dma_free_coherent(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_single(e1, e2, e3, e4)
      +    dma_map_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_single(e1, e2, e3, e4)
      +    dma_unmap_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4, e5;
      @@
      -    pci_map_page(e1, e2, e3, e4, e5)
      +    dma_map_page(&e1->dev, e2, e3, e4, e5)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_page(e1, e2, e3, e4)
      +    dma_unmap_page(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_sg(e1, e2, e3, e4)
      +    dma_map_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_sg(e1, e2, e3, e4)
      +    dma_unmap_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
      +    dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_device(e1, e2, e3, e4)
      +    dma_sync_single_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
      +    dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_device(e1, e2, e3, e4)
      +    dma_sync_sg_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2;
      @@
      -    pci_dma_mapping_error(e1, e2)
      +    dma_mapping_error(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_dma_mask(e1, e2)
      +    dma_set_mask(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_consistent_dma_mask(e1, e2)
      +    dma_set_coherent_mask(&e1->dev, e2)
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9ab90179
    • David S. Miller's avatar
      Merge branch 'mlxsw-Misc-updates' · f6d89dc5
      David S. Miller authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Misc updates
      
      This patch set includes various updates for mlxsw.
      
      Patches #1-#4 adjust the default burst size of packet trap policers to
      conform to Spectrum-{2,3} requirements. The corresponding selftest is
      also adjusted so that it could reliably pass on these platforms.
      
      Patch #5 adjusts a selftest so that it could pass with both old and new
      versions of mausezahn.
      
      Patch #6 significantly reduces the runtime of tc-police scale test by
      changing the preference and masks of the used tc filters.
      
      Patch #7 prevents the driver from trying to set invalid ethtool link
      modes.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f6d89dc5
    • Danielle Ratson's avatar
      mlxsw: spectrum_ethtool: Remove internal speeds from PTYS register · 5bf01b57
      Danielle Ratson authored
      The PTYS register is used to report and configure the port type and
      speed. Currently, internal bits in the register are used the same way
      other bits are used.
      
      Using the internal bits can cause bad parameter firmware errors. For
      example, trying to write to internal bit 25 returns:
      
      EMAD reg access failed (tid=53e2bffa00004310,reg_id=5004(ptys),type=write,status=7(bad parameter))
      
      Remove the internal bits from the PTYS register, so that it is no longer
      possible to pass them to firmware.
      Signed-off-by: default avatarDanielle Ratson <danieller@mellanox.com>
      Reviewed-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5bf01b57
    • Ido Schimmel's avatar
      selftests: mlxsw: Reduce runtime of tc-police scale test · ffff9c9c
      Ido Schimmel authored
      Currently, the test takes about 626 seconds to complete because of an
      inefficient use of the device's TCAM. Reduce the runtime to 202 seconds
      by inserting all the flower filters with the same preference and mask,
      but with a different key.
      
      In particular, this reduces the deletion of the qdisc (which triggers
      the deletion of all the filters) from 66 seconds to 0.2 seconds. This
      prevents various netlink requests from user space applications (e.g.,
      systemd-networkd) from timing-out because RTNL is not held for too long
      anymore.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Reviewed-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ffff9c9c
    • Danielle Ratson's avatar
      selftests: forwarding: Fix mausezahn delay parameter in mirror_test() · 24f54c52
      Danielle Ratson authored
      Currently, mausezahn delay parameter in mirror_test() is specified with
      'ms' units.
      
      mausezahn versions before 0.6.5 interpret 'ms' as seconds and therefore
      the tests that use mirror_test() take a very long time to complete.
      
      Resolve this by specifying 'msec' units.
      Signed-off-by: default avatarDanielle Ratson <danieller@mellanox.com>
      Reviewed-by: default avatarPetr Machata <petrm@mellanox.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      24f54c52
    • Ido Schimmel's avatar
      selftests: mlxsw: Increase burst size for burst test · b36cca02
      Ido Schimmel authored
      The current combination of rate and burst size does not adhere to
      Spectrum-{2,3} limitation which states that the minimum burst size
      should be 40% of the rate.
      
      Increase the burst size in order to honor above mentioned limitation and
      avoid intermittent failures of this test case on Spectrum-{2,3}.
      
      Remove the first sub-test case as the variation in number of received
      packets is simply too large to reliably test it.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b36cca02
    • Ido Schimmel's avatar
      selftests: mlxsw: Increase burst size for rate test · 8e0d8ce4
      Ido Schimmel authored
      The current combination of rate and burst size does not adhere to
      Spectrum-{2,3} limitation which states that the minimum burst size
      should be 40% of the rate.
      
      Increase the burst size in order to honor above mentioned limitation and
      avoid intermittent failures of this test case on Spectrum-{2,3}.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8e0d8ce4
    • Ido Schimmel's avatar
      selftests: mlxsw: Decrease required rate accuracy · f033ad8d
      Ido Schimmel authored
      On Spectrum-{2,3} the required accuracy is +/-10%.
      
      Align the test to this requirement so that it can reliably pass on these
      platforms.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f033ad8d
    • Ido Schimmel's avatar
      mlxsw: spectrum_trap: Adjust default policer burst size for Spectrum-{2, 3} · 7ee0db9d
      Ido Schimmel authored
      On the Spectrum-{2,3} ASICs the minimum burst size of the packet trap
      policers needs to be 40% of the configured rate. Otherwise, intermittent
      drops are observed even when the incoming packet rate is slightly lower
      than the configured policer rate.
      
      Adjust the burst size of the registered packet trap policers so that
      they do not violate above mentioned limitation.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Reviewed-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7ee0db9d
    • Christophe JAILLET's avatar
      net: atheros: switch from 'pci_' to 'dma_' API · 85eb5bc3
      Christophe JAILLET authored
      The wrappers in include/linux/pci-dma-compat.h should go away.
      
      The patch has been generated with the coccinelle script below and has been
      hand modified to replace GFP_ with a correct flag.
      It has been compile tested.
      
      When memory is allocated in 'atl1e_setup_ring_resources()' (atl1e_main.c),
      'atl1_setup_ring_resources()' (atl1.c) and 'atl2_setup_ring_resources()'
      (atl2.c) GFP_KERNEL can be used because it can be called from a .ndo_open.
      
      'atl1_setup_ring_resources()' (atl1.c) can also be called from a
      '.set_ringparam' (see struct ethtool_ops) where sleep is also allowed.
      
      Both cases are protected by 'rtnl_lock()' which is a mutex. So these
      function can sleep.
      
      @@
      @@
      -    PCI_DMA_BIDIRECTIONAL
      +    DMA_BIDIRECTIONAL
      
      @@
      @@
      -    PCI_DMA_TODEVICE
      +    DMA_TO_DEVICE
      
      @@
      @@
      -    PCI_DMA_FROMDEVICE
      +    DMA_FROM_DEVICE
      
      @@
      @@
      -    PCI_DMA_NONE
      +    DMA_NONE
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_alloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_zalloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_free_consistent(e1, e2, e3, e4)
      +    dma_free_coherent(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_single(e1, e2, e3, e4)
      +    dma_map_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_single(e1, e2, e3, e4)
      +    dma_unmap_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4, e5;
      @@
      -    pci_map_page(e1, e2, e3, e4, e5)
      +    dma_map_page(&e1->dev, e2, e3, e4, e5)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_page(e1, e2, e3, e4)
      +    dma_unmap_page(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_sg(e1, e2, e3, e4)
      +    dma_map_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_sg(e1, e2, e3, e4)
      +    dma_unmap_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
      +    dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_device(e1, e2, e3, e4)
      +    dma_sync_single_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
      +    dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_device(e1, e2, e3, e4)
      +    dma_sync_sg_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2;
      @@
      -    pci_dma_mapping_error(e1, e2)
      +    dma_mapping_error(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_dma_mask(e1, e2)
      +    dma_set_mask(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_consistent_dma_mask(e1, e2)
      +    dma_set_coherent_mask(&e1->dev, e2)
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      85eb5bc3
    • Christophe JAILLET's avatar
      starfire: switch from 'pci_' to 'dma_' API · 5d63ccea
      Christophe JAILLET authored
      The wrappers in include/linux/pci-dma-compat.h should go away.
      
      The patch has been generated with the coccinelle script below and has been
      hand modified to replace GFP_ with a correct flag.
      It has been compile tested.
      
      When memory is allocated in 'netdev_open()', GFP_ATOMIC must be used
      because it can be called from a .ndo_tx_timeout function.
      So this function can be called with the 'netif_tx_lock' acquired.
      The call chain is:
        --> tx_timeout                 (.ndo_tx_timeout function)
          --> netdev_open
      
      @@
      @@
      -    PCI_DMA_BIDIRECTIONAL
      +    DMA_BIDIRECTIONAL
      
      @@
      @@
      -    PCI_DMA_TODEVICE
      +    DMA_TO_DEVICE
      
      @@
      @@
      -    PCI_DMA_FROMDEVICE
      +    DMA_FROM_DEVICE
      
      @@
      @@
      -    PCI_DMA_NONE
      +    DMA_NONE
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_alloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_zalloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_free_consistent(e1, e2, e3, e4)
      +    dma_free_coherent(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_single(e1, e2, e3, e4)
      +    dma_map_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_single(e1, e2, e3, e4)
      +    dma_unmap_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4, e5;
      @@
      -    pci_map_page(e1, e2, e3, e4, e5)
      +    dma_map_page(&e1->dev, e2, e3, e4, e5)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_page(e1, e2, e3, e4)
      +    dma_unmap_page(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_sg(e1, e2, e3, e4)
      +    dma_map_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_sg(e1, e2, e3, e4)
      +    dma_unmap_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
      +    dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_device(e1, e2, e3, e4)
      +    dma_sync_single_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
      +    dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_device(e1, e2, e3, e4)
      +    dma_sync_sg_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2;
      @@
      -    pci_dma_mapping_error(e1, e2)
      +    dma_mapping_error(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_dma_mask(e1, e2)
      +    dma_set_mask(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_consistent_dma_mask(e1, e2)
      +    dma_set_coherent_mask(&e1->dev, e2)
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5d63ccea
    • Christophe JAILLET's avatar
      typhoon: switch from 'pci_' to 'dma_' API · c8acc09c
      Christophe JAILLET authored
      The wrappers in include/linux/pci-dma-compat.h should go away.
      
      The patch has been generated with the coccinelle script below and has been
      hand modified to replace GFP_ with a correct flag.
      It has been compile tested.
      
      When memory is allocated in 'typhoon_init_one()' GFP_KERNEL can be used
      because it is a probe function and no lock is acquired.
      
      When memory is allocated in 'typhoon_download_firmware()', GFP_ATOMIC
      must be used because it can be called from a .ndo_tx_timeout function.
      So this function can be called with the 'netif_tx_lock' acquired.
      The call chain is:
        --> typhoon_tx_timeout                 (.ndo_tx_timeout function)
          --> typhoon_start_runtime
            --> typhoon_download_firmware
      
      While at is, update some comments accordingly.
      
      @@
      @@
      -    PCI_DMA_BIDIRECTIONAL
      +    DMA_BIDIRECTIONAL
      
      @@
      @@
      -    PCI_DMA_TODEVICE
      +    DMA_TO_DEVICE
      
      @@
      @@
      -    PCI_DMA_FROMDEVICE
      +    DMA_FROM_DEVICE
      
      @@
      @@
      -    PCI_DMA_NONE
      +    DMA_NONE
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_alloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3;
      @@
      -    pci_zalloc_consistent(e1, e2, e3)
      +    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_free_consistent(e1, e2, e3, e4)
      +    dma_free_coherent(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_single(e1, e2, e3, e4)
      +    dma_map_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_single(e1, e2, e3, e4)
      +    dma_unmap_single(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4, e5;
      @@
      -    pci_map_page(e1, e2, e3, e4, e5)
      +    dma_map_page(&e1->dev, e2, e3, e4, e5)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_page(e1, e2, e3, e4)
      +    dma_unmap_page(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_map_sg(e1, e2, e3, e4)
      +    dma_map_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_unmap_sg(e1, e2, e3, e4)
      +    dma_unmap_sg(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
      +    dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_single_for_device(e1, e2, e3, e4)
      +    dma_sync_single_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
      +    dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2, e3, e4;
      @@
      -    pci_dma_sync_sg_for_device(e1, e2, e3, e4)
      +    dma_sync_sg_for_device(&e1->dev, e2, e3, e4)
      
      @@
      expression e1, e2;
      @@
      -    pci_dma_mapping_error(e1, e2)
      +    dma_mapping_error(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_dma_mask(e1, e2)
      +    dma_set_mask(&e1->dev, e2)
      
      @@
      expression e1, e2;
      @@
      -    pci_set_consistent_dma_mask(e1, e2)
      +    dma_set_coherent_mask(&e1->dev, e2)
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Reviewed-by: default avatarDavid Dillow <dave@thedillows.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c8acc09c
    • Randy Dunlap's avatar
      net: dccp: delete repeated words · 54633527
      Randy Dunlap authored
      Drop duplicated words in /net/dccp/.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Gerrit Renker <gerrit@erg.abdn.ac.uk>
      Cc: dccp@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      54633527
    • Randy Dunlap's avatar
      net: netlink: delete repeated words · 85405918
      Randy Dunlap authored
      Drop duplicated words in net/netlink/.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      85405918
    • Randy Dunlap's avatar
      net: ipv4: delete repeated words · 2bdcc73c
      Randy Dunlap authored
      Drop duplicate words in comments in net/ipv4/.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2bdcc73c
  2. 24 Aug, 2020 15 commits
    • David S. Miller's avatar
      Merge branch 'net-sctp-delete-duplicated-words-plus-other-fixes' · ce876d8f
      David S. Miller authored
      Randy Dunlap says:
      
      ====================
      net: sctp: delete duplicated words + other fixes
      
      Drop or fix repeated words in net/sctp/.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ce876d8f
    • Randy Dunlap's avatar
      net: sctp: ulpqueue.c: delete duplicated word · b8d7a7c6
      Randy Dunlap authored
      Drop the repeated word "an".
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Cc: linux-sctp@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b8d7a7c6
    • Randy Dunlap's avatar
      net: sctp: sm_make_chunk.c: delete duplicated words + fix typo · 14f45bb7
      Randy Dunlap authored
      Drop the repeated words "for", "that", and "a".
      Change "his" to "this".
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Cc: linux-sctp@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      14f45bb7
    • Randy Dunlap's avatar
      net: sctp: protocol.c: delete duplicated words + punctuation · 93c3216a
      Randy Dunlap authored
      Drop the repeated words "of" and "that".
      Add some punctuation for readability.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Cc: linux-sctp@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      93c3216a
    • Randy Dunlap's avatar
      net: sctp: chunk.c: delete duplicated word · 9932564f
      Randy Dunlap authored
      Drop the repeated word "the".
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Cc: linux-sctp@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9932564f
    • Randy Dunlap's avatar
      net: sctp: bind_addr.c: delete duplicated word · 440d3990
      Randy Dunlap authored
      Drop the repeated word "of".
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Cc: linux-sctp@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      440d3990
    • Randy Dunlap's avatar
      net: sctp: auth.c: delete duplicated words · 861e7021
      Randy Dunlap authored
      Drop the repeated word "the" and "now".
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Cc: linux-sctp@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      861e7021
    • Randy Dunlap's avatar
      net: sctp: associola.c: delete duplicated words · 5e80a0cc
      Randy Dunlap authored
      Drop the repeated word "the" in two places.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Cc: linux-sctp@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5e80a0cc
    • Luke Hsiao's avatar
      io_uring: ignore POLLIN for recvmsg on MSG_ERRQUEUE · 901341bb
      Luke Hsiao authored
      Currently, io_uring's recvmsg subscribes to both POLLERR and POLLIN. In
      the context of TCP tx zero-copy, this is inefficient since we are only
      reading the error queue and not using recvmsg to read POLLIN responses.
      
      This patch was tested by using a simple sending program to call recvmsg
      using io_uring with MSG_ERRQUEUE set and verifying with printks that the
      POLLIN is correctly unset when the msg flags are MSG_ERRQUEUE.
      Signed-off-by: default avatarArjun Roy <arjunroy@google.com>
      Signed-off-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarLuke Hsiao <lukehsiao@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      901341bb
    • Luke Hsiao's avatar
      io_uring: allow tcp ancillary data for __sys_recvmsg_sock() · 583bbf06
      Luke Hsiao authored
      For TCP tx zero-copy, the kernel notifies the process of completions by
      queuing completion notifications on the socket error queue. This patch
      allows reading these notifications via recvmsg to support TCP tx
      zero-copy.
      
      Ancillary data was originally disallowed due to privilege escalation
      via io_uring's offloading of sendmsg() onto a kernel thread with kernel
      credentials (https://crbug.com/project-zero/1975). So, we must ensure
      that the socket type is one where the ancillary data types that are
      delivered on recvmsg are plain data (no file descriptors or values that
      are translated based on the identity of the calling process).
      
      This was tested by using io_uring to call recvmsg on the MSG_ERRQUEUE
      with tx zero-copy enabled. Before this patch, we received -EINVALID from
      this specific code path. After this patch, we could read tcp tx
      zero-copy completion notifications from the MSG_ERRQUEUE.
      Signed-off-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Signed-off-by: default avatarArjun Roy <arjunroy@google.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Reviewed-by: default avatarJann Horn <jannh@google.com>
      Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarLuke Hsiao <lukehsiao@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      583bbf06
    • David S. Miller's avatar
      Merge branch 'devlink-fixes-for-port-and-reporter-field-access' · 37a319b5
      David S. Miller authored
      Parav Pandit says:
      
      ====================
      devlink fixes for port and reporter field access
      
      These series contains two small fixes of devlink.
      
      Patch-1 initializes port reporter fields early enough to
      avoid access before initialized error.
      Patch-2 protects port list lock during traversal.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      37a319b5
    • Parav Pandit's avatar
      devlink: Protect devlink port list traversal · 5d080b50
      Parav Pandit authored
      Cited patch in fixes tag misses to protect port list traversal
      while traversing per port reporter list.
      
      Protect it using devlink instance lock.
      
      Fixes: f4f54166 ("devlink: Implement devlink health reporters on per-port basis")
      Signed-off-by: default avatarParav Pandit <parav@nvidia.com>
      Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5d080b50
    • Parav Pandit's avatar
      devlink: Fix per port reporter fields initialization · 79604c5d
      Parav Pandit authored
      Cited patch in fixes tag initializes reporters_list and reporters_lock
      of a devlink port after devlink port is added to the list. Once port
      is added to the list, devlink_nl_cmd_health_reporter_get_dumpit()
      can access the uninitialized mutex and reporters list head.
      Fix it by initializing port reporters field before adding port to the
      list.
      
      Fixes: f4f54166 ("devlink: Implement devlink health reporters on per-port basis")
      Signed-off-by: default avatarParav Pandit <parav@nvidia.com>
      Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79604c5d
    • Thomas Falcon's avatar
      ibmvnic: Fix use-after-free of VNIC login response buffer · 507ebe64
      Thomas Falcon authored
      The login response buffer is freed after it is received
      and parsed, but other functions in the driver still attempt
      to read it, such as when the device is opened, causing the
      Oops below. Store relevant information in the driver's
      private data structures and use those instead.
      
      BUG: Kernel NULL pointer dereference on read at 0x00000010
      Faulting instruction address: 0xc00800000050a900
      Oops: Kernel access of bad area, sig: 11 [#1]
      LE PAGE_SIZE=64K MMU=Hash SMP NR_CPUS=2048 NUMA pSeries
      Modules linked in: pseries_rng rng_core vmx_crypto gf128mul binfmt_misc ip_tables x_tables ibmvnic ibmveth crc32c_vpmsum autofs4
      CPU: 7 PID: 759 Comm: NetworkManager Not tainted 5.9.0-rc1-00124-gd0a84e1f #14
      NIP:  c00800000050a900 LR: c00800000050a8f0 CTR: 00000000005b1904
      REGS: c0000001ed746d20 TRAP: 0300   Not tainted  (5.9.0-rc1-00124-gd0a84e1f)
      MSR:  800000000280b033 <SF,VEC,VSX,EE,FP,ME,IR,DR,RI,LE>  CR: 24428484  XER: 00000001
      CFAR: c0000000000101b0 DAR: 0000000000000010 DSISR: 40000000 IRQMASK: 0
      GPR00: c00800000050a8f0 c0000001ed746fb0 c008000000518e00 0000000000000000
      GPR04: 00000000000000c0 0000000000000080 0003c366c60c4501 0000000000000352
      GPR08: 000000000001f400 0000000000000010 0000000000000000 0000000000000000
      GPR12: 0001cf0000000019 c00000001ec97680 00000001003dfd40 0000010008dbb22c
      GPR16: 0000000000000000 0000000000000000 0000000000000000 c000000000edb6c8
      GPR20: c000000004e73e00 c000000004fd2448 c000000004e6d700 c000000004fd2448
      GPR24: c000000004fd2400 c000000004a0cd20 c0000001ed961860 c0080000005029d8
      GPR28: 0000000000000000 0000000000000003 c000000004a0c000 0000000000000000
      NIP [c00800000050a900] init_resources+0x338/0xa00 [ibmvnic]
      LR [c00800000050a8f0] init_resources+0x328/0xa00 [ibmvnic]
      Call Trace:
      [c0000001ed746fb0] [c00800000050a8f0] init_resources+0x328/0xa00 [ibmvnic] (unreliable)
      [c0000001ed747090] [c00800000050b024] ibmvnic_open+0x5c/0x100 [ibmvnic]
      [c0000001ed747110] [c000000000bdcc0c] __dev_open+0x17c/0x250
      [c0000001ed7471b0] [c000000000bdd1ec] __dev_change_flags+0x1dc/0x270
      [c0000001ed747260] [c000000000bdd2bc] dev_change_flags+0x3c/0x90
      [c0000001ed7472a0] [c000000000bf24b8] do_setlink+0x3b8/0x1280
      [c0000001ed747450] [c000000000bf8cc8] __rtnl_newlink+0x5a8/0x980
      [c0000001ed7478b0] [c000000000bf9110] rtnl_newlink+0x70/0xb0
      [c0000001ed7478f0] [c000000000bf07c4] rtnetlink_rcv_msg+0x364/0x460
      [c0000001ed747990] [c000000000c68b94] netlink_rcv_skb+0x84/0x1a0
      [c0000001ed747a00] [c000000000bef758] rtnetlink_rcv+0x28/0x40
      [c0000001ed747a20] [c000000000c68188] netlink_unicast+0x218/0x310
      [c0000001ed747a80] [c000000000c6848c] netlink_sendmsg+0x20c/0x4e0
      [c0000001ed747b20] [c000000000b9dc88] ____sys_sendmsg+0x158/0x360
      [c0000001ed747bb0] [c000000000ba1c88] ___sys_sendmsg+0x98/0xf0
      [c0000001ed747d10] [c000000000ba1db8] __sys_sendmsg+0x78/0x100
      [c0000001ed747dc0] [c000000000033820] system_call_exception+0x160/0x280
      [c0000001ed747e20] [c00000000000d740] system_call_common+0xf0/0x27c
      Instruction dump:
      3be00000 38810068 b1410076 3941006a 93e10072 fbea0000 b1210068 4bff9915
      eb9e0ca0 eabe0900 393c0010 3ab50048 <7fa04c2c> 7fba07b4 7b431764 7b4917a0
      ---[ end trace fbc5949a28e103bd ]---
      
      Fixes: f3ae59c0 ("ibmvnic: store RX and TX subCRQ handle array in ibmvnic_adapter struct")
      Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      507ebe64
    • Taehee Yoo's avatar
      ipvlan: advertise link netns via netlink · 0bad834c
      Taehee Yoo authored
      Assign rtnl_link_ops->get_link_net() callback so that IFLA_LINK_NETNSID is
      added to rtnetlink messages.
      
      Test commands:
          ip netns add nst
          ip link add dummy0 type dummy
          ip link add ipvlan0 link dummy0 type ipvlan
          ip link set ipvlan0 netns nst
          ip netns exec nst ip link show ipvlan0
      
      Result:
          ---Before---
          6: ipvlan0@if5: <BROADCAST,MULTICAST> ...
              link/ether 82:3a:78:ab:60:50 brd ff:ff:ff:ff:ff:ff
      
          ---After---
          12: ipvlan0@if11: <BROADCAST,MULTICAST> ...
              link/ether 42:b1:ad:57:4e:27 brd ff:ff:ff:ff:ff:ff link-netnsid 0
                                                                 ~~~~~~~~~~~~~~
      Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0bad834c
  3. 23 Aug, 2020 5 commits
    • David S. Miller's avatar
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · cb957121
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Add perf support for emitting extended registers for power10.
      
       - A fix for CPU hotplug on pseries, where on large/loaded systems we
         may not wait long enough for the CPU to be offlined, leading to
         crashes.
      
       - Addition of a raw cputable entry for Power10, which is not required
         to boot, but is required to make our PMU setup work correctly in
         guests.
      
       - Three fixes for the recent changes on 32-bit Book3S to move modules
         into their own segment for strict RWX.
      
       - A fix for a recent change in our powernv PCI code that could lead to
         crashes.
      
       - A change to our perf interrupt accounting to avoid soft lockups when
         using some events, found by syzkaller.
      
       - A change in the way we handle power loss events from the hypervisor
         on pseries. We no longer immediately shut down if we're told we're
         running on a UPS.
      
       - A few other minor fixes.
      
      Thanks to Alexey Kardashevskiy, Andreas Schwab, Aneesh Kumar K.V, Anju T
      Sudhakar, Athira Rajeev, Christophe Leroy, Frederic Barrat, Greg Kurz,
      Kajol Jain, Madhavan Srinivasan, Michael Neuling, Michael Roth,
      Nageswara R Sastry, Oliver O'Halloran, Thiago Jung Bauermann,
      Vaidyanathan Srinivasan, Vasant Hegde.
      
      * tag 'powerpc-5.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/perf/hv-24x7: Move cpumask file to top folder of hv-24x7 driver
        powerpc/32s: Fix module loading failure when VMALLOC_END is over 0xf0000000
        powerpc/pseries: Do not initiate shutdown when system is running on UPS
        powerpc/perf: Fix soft lockups due to missed interrupt accounting
        powerpc/powernv/pci: Fix possible crash when releasing DMA resources
        powerpc/pseries/hotplug-cpu: wait indefinitely for vCPU death
        powerpc/32s: Fix is_module_segment() when MODULES_VADDR is defined
        powerpc/kasan: Fix KASAN_SHADOW_START on BOOK3S_32
        powerpc/fixmap: Fix the size of the early debug area
        powerpc/pkeys: Fix build error with PPC_MEM_KEYS disabled
        powerpc/kernel: Cleanup machine check function declarations
        powerpc: Add POWER10 raw mode cputable entry
        powerpc/perf: Add extended regs support for power10 platform
        powerpc/perf: Add support for outputting extended regs in perf intr_regs
        powerpc: Fix P10 PVR revision in /proc/cpuinfo for SMT4 cores
      cb957121
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2020-08-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 550c2129
      Linus Torvalds authored
      Pull x86 fix from Thomas Gleixner:
       "A single fix for x86 which removes the RDPID usage from the paranoid
        entry path and unconditionally uses LSL to retrieve the CPU number.
      
        RDPID depends on MSR_TSX_AUX. KVM has an optmization to avoid
        expensive MRS read/writes on VMENTER/EXIT. It caches the MSR values
        and restores them either when leaving the run loop, on preemption or
        when going out to user space. MSR_TSX_AUX is part of that lazy MSR
        set, so after writing the guest value and before the lazy restore any
        exception using the paranoid entry will read the guest value and use
        it as CPU number to retrieve the GSBASE value for the current CPU when
        FSGSBASE is enabled. As RDPID is only used in that particular entry
        path, there is no reason to burden VMENTER/EXIT with two extra MSR
        writes. Remove the RDPID optimization, which is not even backed by
        numbers from the paranoid entry path instead"
      
      * tag 'x86-urgent-2020-08-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/entry/64: Do not use RDPID in paranoid entry to accomodate KVM
      550c2129
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2020-08-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cea05c19
      Linus Torvalds authored
      Pull x86 perf fix from Thomas Gleixner:
       "A single update for perf on x86 which has support for the broken down
        bandwith counters"
      
      * tag 'perf-urgent-2020-08-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/uncore: Add BW counters for GT, IA and IO breakdown
      cea05c19
    • Linus Torvalds's avatar
      Merge tag 'efi-urgent-2020-08-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 10c091b6
      Linus Torvalds authored
      Pull EFI fixes from Thomas Gleixner:
      
       - Enforce NX on RO data in mixed EFI mode
      
       - Destroy workqueue in an error handling path to prevent UAF
      
       - Stop argument parser at '--' which is the delimiter for init
      
       - Treat a NULL command line pointer as empty instead of dereferncing it
         unconditionally.
      
       - Handle an unterminated command line correctly
      
       - Cleanup the 32bit code leftovers and remove obsolete documentation
      
      * tag 'efi-urgent-2020-08-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Documentation: efi: remove description of efi=old_map
        efi/x86: Move 32-bit code into efi_32.c
        efi/libstub: Handle unterminated cmdline
        efi/libstub: Handle NULL cmdline
        efi/libstub: Stop parsing arguments at "--"
        efi: add missed destroy_workqueue when efisubsys_init fails
        efi/x86: Mark kernel rodata non-executable for mixed mode
      10c091b6