Skip to content
Permalink
Ricardo-Martin…
Switch branches/tags

Commits on Jan 14, 2022

  1. net: wwan: t7xx: Add maintainers and documentation

    Adds maintainers and documentation for MediaTek t7xx 5G WWAN modem
    device driver.
    
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Ricardo Martinez authored and intel-lab-lkp committed Jan 14, 2022
  2. net: wwan: t7xx: Device deep sleep lock/unlock

    Introduce the mechanism to lock/unlock the device 'deep sleep' mode.
    When the PCIe link state is L1.2 or L2, the host side still can keep
    the device is in D0 state from the host side point of view. At the same
    time, if the device's 'deep sleep' mode is unlocked, the device will
    go to 'deep sleep' while it is still in D0 state on the host side.
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  3. net: wwan: t7xx: Runtime PM

    Enables runtime power management callbacks including runtime_suspend
    and runtime_resume. Autosuspend is used to prevent overhead by frequent
    wake-ups.
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Eliot Lee <eliot.lee@intel.com>
    Signed-off-by: Eliot Lee <eliot.lee@intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  4. net: wwan: t7xx: Introduce power management support

    Implements suspend, resumes, freeze, thaw, poweroff, and restore
    `dev_pm_ops` callbacks.
    
    From the host point of view, the t7xx driver is one entity. But, the
    device has several modules that need to be addressed in different ways
    during power management (PM) flows.
    The driver uses the term 'PM entities' to refer to the 2 DPMA and
    2 CLDMA HW blocks that need to be managed during PM flows.
    When a dev_pm_ops function is called, the PM entities list is iterated
    and the matching function is called for each entry in the list.
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  5. net: wwan: t7xx: Add WWAN network interface

    Creates the Cross Core Modem Network Interface (CCMNI) which implements
    the wwan_ops for registration with the WWAN framework, CCMNI also
    implements the net_device_ops functions used by the network device.
    Network device operations include open, close, start transmission, TX
    timeout, change MTU, and select queue.
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Co-developed-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  6. net: wwan: t7xx: Add data path interface

    Data Path Modem AP Interface (DPMAIF) HIF layer provides methods
    for initialization, ISR, control and event handling of TX/RX flows.
    
    DPMAIF TX
    Exposes the `dmpaif_tx_send_skb` function which can be used by the
    network device to transmit packets.
    The uplink data management uses a Descriptor Ring Buffer (DRB).
    First DRB entry is a message type that will be followed by 1 or more
    normal DRB entries. Message type DRB will hold the skb information
    and each normal DRB entry holds a pointer to the skb payload.
    
    DPMAIF RX
    The downlink buffer management uses Buffer Address Table (BAT) and
    Packet Information Table (PIT) rings.
    The BAT ring holds the address of skb data buffer for the HW to use,
    while the PIT contains metadata about a whole network packet including
    a reference to the BAT entry holding the data buffer address.
    The driver reads the PIT and BAT entries written by the modem, when
    reaching a threshold, the driver will reload the PIT and BAT rings.
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  7. net: wwan: t7xx: Data path HW layer

    Data Path Modem AP Interface (DPMAIF) HW layer provides HW abstraction
    for the upper layer (DPMAIF HIF). It implements functions to do the HW
    configuration, TX/RX control and interrupt handling.
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  8. net: wwan: t7xx: Add AT and MBIM WWAN ports

    Adds AT and MBIM ports to the port proxy infrastructure.
    The initialization method is responsible for creating the corresponding
    ports using the WWAN framework infrastructure. The implemented WWAN port
    operations are start, stop, and TX.
    
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    devegowdIntel authored and intel-lab-lkp committed Jan 14, 2022
  9. net: wwan: t7xx: Add control port

    Control Port implements driver control messages such as modem-host
    handshaking, controls port enumeration, and handles exception messages.
    
    The handshaking process between the driver and the modem happens during
    the init sequence. The process involves the exchange of a list of
    supported runtime features to make sure that modem and host are ready
    to provide proper feature lists including port enumeration. Further
    features can be enabled and controlled in this handshaking process.
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  10. net: wwan: t7xx: Add port proxy infrastructure

    Port-proxy provides a common interface to interact with different types
    of ports. Ports export their configuration via `struct t7xx_port` and
    operate as defined by `struct port_ops`.
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Co-developed-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  11. net: wwan: t7xx: Add core components

    Registers the t7xx device driver with the kernel. Setup all the core
    components: PCIe layer, Modem Host Cross Core Interface (MHCCIF),
    modem control operations, modem state machine, and build
    infrastructure.
    
    * PCIe layer code implements driver probe and removal.
    * MHCCIF provides interrupt channels to communicate events
      such as handshake, PM and port enumeration.
    * Modem control implements the entry point for modem init,
      reset and exit.
    * The modem status monitor is a state machine used by modem control
      to complete initialization and stop. It is used also to propagate
      exception events reported by other components.
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  12. net: wwan: t7xx: Add control DMA interface

    Cross Layer DMA (CLDMA) Hardware interface (HIF) enables the control
    path of Host-Modem data transfers. CLDMA HIF layer provides a common
    interface to the Port Layer.
    
    CLDMA manages 8 independent RX/TX physical channels with data flow
    control in HW queues. CLDMA uses ring buffers of General Packet
    Descriptors (GPD) for TX/RX. GPDs can represent multiple or single
    data buffers (DB).
    
    CLDMA HIF initializes GPD rings, registers ISR handlers for CLDMA
    interrupts, and initializes CLDMA HW registers.
    
    CLDMA TX flow:
    1. Port Layer write
    2. Get DB address
    3. Configure GPD
    4. Triggering processing via HW register write
    
    CLDMA RX flow:
    1. CLDMA HW sends a RX "done" to host
    2. Driver starts thread to safely read GPD
    3. DB is sent to Port layer
    4. Create a new buffer for GPD ring
    
    Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
    Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
    Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Haijun Liu authored and intel-lab-lkp committed Jan 14, 2022
  13. list: Add list_next_entry_circular() and list_prev_entry_circular()

    Add macros to get the next or previous entries and wraparound if
    needed. For example, calling list_next_entry_circular() on the last
    element should return the first element in the list.
    
    Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
    Ricardo Martinez authored and intel-lab-lkp committed Jan 14, 2022

Commits on Jan 10, 2022

  1. Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

    Merge in fixes directly in prep for the 5.17 merge window.
    No conflicts.
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jakub Kicinski committed Jan 10, 2022
  2. tcp: tcp_send_challenge_ack delete useless param skb

    After this parameter is passed in, there is no usage, and deleting it will
     not bring any impact.
    
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Benjamin Yim <yan2228598786@gmail.com>
    Link: https://lore.kernel.org/r/20220109130824.2776-1-yan2228598786@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Benjamin-Yim authored and Jakub Kicinski committed Jan 10, 2022
  3. net/qla3xxx: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    So, if dma_set_mask_and_coherent() succeeds, 'pci_using_dac' is known to be
    1.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/3011689e8c77d49d7e44509d5a8241320ec408c5.1641754134.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  4. rocker: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/9ba2d13099d216f3df83e50ad33a05504c90fe7c.1641744274.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  5. hinic: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/23541c28df8d0dcd3663b5dbe0f76af71e70e9cc.1641743855.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  6. lan743x: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/ef548716606f257939df9738a801f15b6edf2568.1641743405.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  7. net: enetc: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/dbecd4eb49a9586ee343b5473dda4b84c42112e9.1641742884.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  8. cxgb4vf: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    So, if dma_set_mask_and_coherent() succeeds, 'pci_using_dac' is known to be
    1.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/b14986ea39cea2ca9a6cd0476a3fc167c853ee67.1641736772.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  9. cxgb4: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    So, if dma_set_mask_and_coherent() succeeds, 'highdma' is known to be true.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/56db10d53be0897ff1be5f37d64b91cb7e1d932c.1641736387.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  10. cxgb3: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    So, if dma_set_mask_and_coherent() succeeds, 'pci_using_dac' is known to be
    1.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/a0e2539aefb0034091aca02c98440ea9459f1258.1641736234.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  11. bnx2x: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    Moreover, dma_set_mask_and_coherent() returns 0 or -EIO, so the return
    code of the function can be used directly.
    
    Finally, inline bnx2x_set_coherency_mask() because it is now only a wrapper
    for a single dma_set_mask_and_coherent() call.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/29608a525876afddceabf8f11b2ba606da8748fc.1641730747.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  12. et131x: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    Moreover, dma_set_mask_and_coherent() returns 0 or -EIO, so the return
    code of the function can be used directly. There is no need to 'rc = -EIO'
    explicitly.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/b9aa46e7e5a5aa61f56aac5ea439930f41ad9946.1641726804.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  13. be2net: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    So if dma_set_mask_and_coherent() succeeds, 'netdev->features' will have
    NETIF_F_HIGHDMA in all cases. Move the assignment of this feature in
    be_netdev_init() instead be_probe() which is a much logical place.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/637696d7141faa68c29fc34b70f9aa67d5e605f0.1641718999.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  14. vmxnet3: Remove useless DMA-32 fallback configuration

    As stated in [1], dma_set_mask() with a 64-bit mask never fails if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    So if dma_set_mask_and_coherent() succeeds, 'dma64' is know to be 'true'.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/43e5dcf1a5e9e9c5d2d86f87810d6e93e3d22e32.1641718188.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  15. bna: Simplify DMA setting

    As stated in [1], dma_set_mask() with a 64-bit mask will never fail if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    So, if dma_set_mask_and_coherent() succeeds, 'using_dac' is known to be
    'true'. This variable can be removed.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/1d5a7b3f4fa735f1233c3eb3fa07e71df95fad75.1641658516.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  16. net: alteon: Simplify DMA setting

    As stated in [1], dma_set_mask() with a 64-bit mask will never fail if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    If dma_set_mask_and_coherent() succeeds, 'ap->pci_using_dac' is known to be
    1. So 'pci_using_dac' can be removed from the 'struct ace_private'.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/1a414c05c27b21c661aef61dffe1adcd1578b1f5.1641651917.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  17. myri10ge: Simplify DMA setting

    As stated in [1], dma_set_mask() with a 64-bit mask will never fail if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    If dma_set_mask_and_coherent() succeeds, 'dac_enabled' is known to be 1.
    
    Simplify code and remove some dead code accordingly.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/e92b0c3a3c1574a97a4e6fd0c30225f10fa59d18.1641651693.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  18. qlcnic: Simplify DMA setting

    As stated in [1], dma_set_mask() with a 64-bit mask will never fail if
    dev->dma_mask is non-NULL.
    So, if it fails, the 32 bits case will also fail for the same reason.
    
    So qlcnic_set_dma_mask(), (in qlcnic_main.c) can be simplified a lot and
    inlined directly in its only caller.
    
    If dma_set_mask_and_coherent() succeeds, 'pci_using_dac' is known to be 1.
    So it can be removed from all the calling chain.
    
    qlcnic_setup_netdev() can finally be simplified as-well.
    
    [1]: https://lkml.org/lkml/2021/6/7/398
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/4996ab0337d62ec6a54b2edf234cd5ced4b4d7ad.1641649611.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    tititiou36 authored and Jakub Kicinski committed Jan 10, 2022
  19. net: allwinner: Fix print format

    Kees reports quoted commit introduced the following warning on arm64:
    
    drivers/net/ethernet/allwinner/sun4i-emac.c:922:60: error: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'resource_size_t' {aka 'long long unsigned int'} [-Werror=format=]
      922 |         netdev_info(ndev, "get io resource from device: 0x%x, size = %u\n",
          |                                                           ~^
          |                                                            |                                      |                                                            unsigned int
          |                                                           %llx
      923 |                     regs->start, resource_size(regs));
          |                     ~~~~~~~~~~~
          |                         |
          |                         resource_size_t {aka long long unsigned int}
    
    .. and another one like that for resource_size().
    
    Switch to %pa and a cast.
    
    Reported-by: Kees Cook <keescook@chromium.org>
    Fixes: 47869e8 ("sun4i-emac.c: add dma support")
    Link: https://lore.kernel.org/r/20220108034438.2227343-1-kuba@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jakub Kicinski committed Jan 10, 2022
  20. page_pool: remove spinlock in page_pool_refill_alloc_cache()

    As page_pool_refill_alloc_cache() is only called by
    __page_pool_get_cached(), which assumes non-concurrent access
    as suggested by the comment in __page_pool_get_cached(), and
    ptr_ring allows concurrent access between consumer and producer,
    so remove the spinlock in page_pool_refill_alloc_cache().
    
    Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
    Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Link: https://lore.kernel.org/r/20220107090042.13605-1-linyunsheng@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Yunsheng Lin authored and Jakub Kicinski committed Jan 10, 2022
  21. amt: fix wrong return type of amt_send_membership_update()

    amt_send_membership_update() would return -1 but it's return type is bool.
    So, it should be used TRUE instead of -1.
    
    Fixes: cbc21dc ("amt: add data plane of amt interface")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Link: https://lore.kernel.org/r/20220109163702.6331-1-ap420073@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    TaeheeYoo authored and Jakub Kicinski committed Jan 10, 2022
  22. net: mcs7830: handle usb read errors properly

    Syzbot reported uninit value in mcs7830_bind(). The problem was in
    missing validation check for bytes read via usbnet_read_cmd().
    
    usbnet_read_cmd() internally calls usb_control_msg(), that returns
    number of bytes read. Code should validate that requested number of bytes
    was actually read.
    
    So, this patch adds missing size validation check inside
    mcs7830_get_reg() to prevent uninit value bugs
    
    Reported-and-tested-by: syzbot+003c0a286b9af5412510@syzkaller.appspotmail.com
    Fixes: 2a36d70 ("USB: driver for mcs7830 (aka DeLOCK) USB ethernet adapter")
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20220106225716.7425-1-paskripkin@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    pskrgag authored and Jakub Kicinski committed Jan 10, 2022
Older