18 Dec, 2020

1 commit


14 Dec, 2020

2 commits


16 Oct, 2020

1 commit

  • Pull networking updates from Jakub Kicinski:

    - Add redirect_neigh() BPF packet redirect helper, allowing to limit
    stack traversal in common container configs and improving TCP
    back-pressure.

    Daniel reports ~10Gbps => ~15Gbps single stream TCP performance gain.

    - Expand netlink policy support and improve policy export to user
    space. (Ge)netlink core performs request validation according to
    declared policies. Expand the expressiveness of those policies
    (min/max length and bitmasks). Allow dumping policies for particular
    commands. This is used for feature discovery by user space (instead
    of kernel version parsing or trial and error).

    - Support IGMPv3/MLDv2 multicast listener discovery protocols in
    bridge.

    - Allow more than 255 IPv4 multicast interfaces.

    - Add support for Type of Service (ToS) reflection in SYN/SYN-ACK
    packets of TCPv6.

    - In Multi-patch TCP (MPTCP) support concurrent transmission of data on
    multiple subflows in a load balancing scenario. Enhance advertising
    addresses via the RM_ADDR/ADD_ADDR options.

    - Support SMC-Dv2 version of SMC, which enables multi-subnet
    deployments.

    - Allow more calls to same peer in RxRPC.

    - Support two new Controller Area Network (CAN) protocols - CAN-FD and
    ISO 15765-2:2016.

    - Add xfrm/IPsec compat layer, solving the 32bit user space on 64bit
    kernel problem.

    - Add TC actions for implementing MPLS L2 VPNs.

    - Improve nexthop code - e.g. handle various corner cases when nexthop
    objects are removed from groups better, skip unnecessary
    notifications and make it easier to offload nexthops into HW by
    converting to a blocking notifier.

    - Support adding and consuming TCP header options by BPF programs,
    opening the doors for easy experimental and deployment-specific TCP
    option use.

    - Reorganize TCP congestion control (CC) initialization to simplify
    life of TCP CC implemented in BPF.

    - Add support for shipping BPF programs with the kernel and loading
    them early on boot via the User Mode Driver mechanism, hence reusing
    all the user space infra we have.

    - Support sleepable BPF programs, initially targeting LSM and tracing.

    - Add bpf_d_path() helper for returning full path for given 'struct
    path'.

    - Make bpf_tail_call compatible with bpf-to-bpf calls.

    - Allow BPF programs to call map_update_elem on sockmaps.

    - Add BPF Type Format (BTF) support for type and enum discovery, as
    well as support for using BTF within the kernel itself (current use
    is for pretty printing structures).

    - Support listing and getting information about bpf_links via the bpf
    syscall.

    - Enhance kernel interfaces around NIC firmware update. Allow
    specifying overwrite mask to control if settings etc. are reset
    during update; report expected max time operation may take to users;
    support firmware activation without machine reboot incl. limits of
    how much impact reset may have (e.g. dropping link or not).

    - Extend ethtool configuration interface to report IEEE-standard
    counters, to limit the need for per-vendor logic in user space.

    - Adopt or extend devlink use for debug, monitoring, fw update in many
    drivers (dsa loop, ice, ionic, sja1105, qed, mlxsw, mv88e6xxx,
    dpaa2-eth).

    - In mlxsw expose critical and emergency SFP module temperature alarms.
    Refactor port buffer handling to make the defaults more suitable and
    support setting these values explicitly via the DCBNL interface.

    - Add XDP support for Intel's igb driver.

    - Support offloading TC flower classification and filtering rules to
    mscc_ocelot switches.

    - Add PTP support for Marvell Octeontx2 and PP2.2 hardware, as well as
    fixed interval period pulse generator and one-step timestamping in
    dpaa-eth.

    - Add support for various auth offloads in WiFi APs, e.g. SAE (WPA3)
    offload.

    - Add Lynx PHY/PCS MDIO module, and convert various drivers which have
    this HW to use it. Convert mvpp2 to split PCS.

    - Support Marvell Prestera 98DX3255 24-port switch ASICs, as well as
    7-port Mediatek MT7531 IP.

    - Add initial support for QCA6390 and IPQ6018 in ath11k WiFi driver,
    and wcn3680 support in wcn36xx.

    - Improve performance for packets which don't require much offloads on
    recent Mellanox NICs by 20% by making multiple packets share a
    descriptor entry.

    - Move chelsio inline crypto drivers (for TLS and IPsec) from the
    crypto subtree to drivers/net. Move MDIO drivers out of the phy
    directory.

    - Clean up a lot of W=1 warnings, reportedly the actively developed
    subsections of networking drivers should now build W=1 warning free.

    - Make sure drivers don't use in_interrupt() to dynamically adapt their
    code. Convert tasklets to use new tasklet_setup API (sadly this
    conversion is not yet complete).

    * tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2583 commits)
    Revert "bpfilter: Fix build error with CONFIG_BPFILTER_UMH"
    net, sockmap: Don't call bpf_prog_put() on NULL pointer
    bpf, selftest: Fix flaky tcp_hdr_options test when adding addr to lo
    bpf, sockmap: Add locking annotations to iterator
    netfilter: nftables: allow re-computing sctp CRC-32C in 'payload' statements
    net: fix pos incrementment in ipv6_route_seq_next
    net/smc: fix invalid return code in smcd_new_buf_create()
    net/smc: fix valid DMBE buffer sizes
    net/smc: fix use-after-free of delayed events
    bpfilter: Fix build error with CONFIG_BPFILTER_UMH
    cxgb4/ch_ipsec: Replace the module name to ch_ipsec from chcr
    net: sched: Fix suspicious RCU usage while accessing tcf_tunnel_info
    bpf: Fix register equivalence tracking.
    rxrpc: Fix loss of final ack on shutdown
    rxrpc: Fix bundle counting for exclusive connections
    netfilter: restore NF_INET_NUMHOOKS
    ibmveth: Identify ingress large send packets.
    ibmveth: Switch order of ibmveth_helper calls.
    cxgb4: handle 4-tuple PEDIT to NAT mode translation
    selftests: Add VRF route leaking tests
    ...

    Linus Torvalds
     

02 Oct, 2020

8 commits

  • In virtual machines the device-id range is defined
    between 0x10000-0x20000. The reason for using such a
    large range is to avoid overlapping with the PCI range.

    Reviewed-by: Laurentiu Tudor
    Acked-by: Laurentiu Tudor
    Signed-off-by: Bharat Bhushan
    Signed-off-by: Laurentiu Tudor
    Signed-off-by: Diana Craciun
    Link: https://lore.kernel.org/r/20200929085441.17448-13-diana.craciun@oss.nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Bharat Bhushan
     
  • The IRQ pool handling functions can be used by both DPRC
    driver and VFIO. Adapt and export those functions.

    Reviewed-by: Laurentiu Tudor
    Acked-by: Laurentiu Tudor
    Signed-off-by: Diana Craciun
    Link: https://lore.kernel.org/r/20200929085441.17448-12-diana.craciun@oss.nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Diana Craciun
     
  • Both DPRC driver and VFIO driver use the same initialization code
    for the DPRC. Introduced a new function which groups this
    initialization code. The function is exported and may be
    used by VFIO as well.

    Reviewed-by: Laurentiu Tudor
    Acked-by: Laurentiu Tudor
    Signed-off-by: Diana Craciun
    Link: https://lore.kernel.org/r/20200929085441.17448-10-diana.craciun@oss.nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Diana Craciun
     
  • Create and export a cleanup function for DPRC. The function
    is used by the DPRC driver, but it will be used by the VFIO
    driver as well.

    Reviewed-by: Laurentiu Tudor
    Acked-by: Laurentiu Tudor
    Signed-off-by: Diana Craciun
    Link: https://lore.kernel.org/r/20200929085441.17448-9-diana.craciun@oss.nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Diana Craciun
     
  • Currently the DPRC scan function is used only by the bus driver.
    But the same functionality will be needed by the VFIO driver.
    To support this, the dprc scan function was exported and a little
    bit adjusted to fit both scenarios. Also the scan mutex initialization
    is done when the bus object is created, not in dprc_probe in order
    to be used by both VFIO and bus driver.
    Similarily dprc_remove_devices is exported to be used by VFIO.

    Reviewed-by: Laurentiu Tudor
    Acked-by: Laurentiu Tudor
    Signed-off-by: Diana Craciun
    Link: https://lore.kernel.org/r/20200929085441.17448-8-diana.craciun@oss.nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Diana Craciun
     
  • DPRC reset is required by VFIO-mc in order to stop a device
    to further generate DMA transactions.

    Reviewed-by: Laurentiu Tudor
    Acked-by: Laurentiu Tudor
    Signed-off-by: Bharat Bhushan
    Signed-off-by: Laurentiu Tudor
    Signed-off-by: Diana Craciun
    Link: https://lore.kernel.org/r/20200929085441.17448-7-diana.craciun@oss.nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Bharat Bhushan
     
  • The QMAN region is memory mapped, so it should be of type
    IORESOURCE_MEM. The region flags bits were wrongly used to
    pass additional information. Use the bus specific bits for
    this purpose.

    Reviewed-by: Laurentiu Tudor
    Acked-by: Laurentiu Tudor
    Signed-off-by: Diana Craciun
    Link: https://lore.kernel.org/r/20200929085441.17448-5-diana.craciun@oss.nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Diana Craciun
     
  • This patch is required for vfio-fsl-mc meta driver to successfully bind
    layerscape container devices for device passthrough. This patch adds
    a mechanism to allow a layerscape device to specify a driver rather than
    a layerscape driver provide a device match.

    Example to allow a device (dprc.1) to specifically bind
    with driver (vfio-fsl-mc):-
    - echo vfio-fsl-mc > /sys/bus/fsl-mc/devices/dprc.1/driver_override
    - echo dprc.1 > /sys/bus/fsl-mc/drivers/fsl_mc_dprc/unbind
    - echo dprc.1 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/bind

    Reviewed-by: Laurentiu Tudor
    Acked-by: Laurentiu Tudor
    Signed-off-by: Bharat Bhushan
    Signed-off-by: Laurentiu Tudor
    Signed-off-by: Diana Craciun
    Link: https://lore.kernel.org/r/20200929085441.17448-4-diana.craciun@oss.nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Bharat Bhushan
     

19 Sep, 2020

1 commit

  • The FIPER3 (fixed interval period pulse generator) is supported on
    DPAA2 and ENETC network controller hardware. This patch is to support
    it in ptp_qoriq driver.

    Signed-off-by: Yangbo Lu
    Acked-by: Vladimir Oltean
    Signed-off-by: David S. Miller

    Yangbo Lu
     

06 Aug, 2020

1 commit

  • Pull networking updates from David Miller:

    1) Support 6Ghz band in ath11k driver, from Rajkumar Manoharan.

    2) Support UDP segmentation in code TSO code, from Eric Dumazet.

    3) Allow flashing different flash images in cxgb4 driver, from Vishal
    Kulkarni.

    4) Add drop frames counter and flow status to tc flower offloading,
    from Po Liu.

    5) Support n-tuple filters in cxgb4, from Vishal Kulkarni.

    6) Various new indirect call avoidance, from Eric Dumazet and Brian
    Vazquez.

    7) Fix BPF verifier failures on 32-bit pointer arithmetic, from
    Yonghong Song.

    8) Support querying and setting hardware address of a port function via
    devlink, use this in mlx5, from Parav Pandit.

    9) Support hw ipsec offload on bonding slaves, from Jarod Wilson.

    10) Switch qca8k driver over to phylink, from Jonathan McDowell.

    11) In bpftool, show list of processes holding BPF FD references to
    maps, programs, links, and btf objects. From Andrii Nakryiko.

    12) Several conversions over to generic power management, from Vaibhav
    Gupta.

    13) Add support for SO_KEEPALIVE et al. to bpf_setsockopt(), from Dmitry
    Yakunin.

    14) Various https url conversions, from Alexander A. Klimov.

    15) Timestamping and PHC support for mscc PHY driver, from Antoine
    Tenart.

    16) Support bpf iterating over tcp and udp sockets, from Yonghong Song.

    17) Support 5GBASE-T i40e NICs, from Aleksandr Loktionov.

    18) Add kTLS RX HW offload support to mlx5e, from Tariq Toukan.

    19) Fix the ->ndo_start_xmit() return type to be netdev_tx_t in several
    drivers. From Luc Van Oostenryck.

    20) XDP support for xen-netfront, from Denis Kirjanov.

    21) Support receive buffer autotuning in MPTCP, from Florian Westphal.

    22) Support EF100 chip in sfc driver, from Edward Cree.

    23) Add XDP support to mvpp2 driver, from Matteo Croce.

    24) Support MPTCP in sock_diag, from Paolo Abeni.

    25) Commonize UDP tunnel offloading code by creating udp_tunnel_nic
    infrastructure, from Jakub Kicinski.

    26) Several pci_ --> dma_ API conversions, from Christophe JAILLET.

    27) Add FLOW_ACTION_POLICE support to mlxsw, from Ido Schimmel.

    28) Add SK_LOOKUP bpf program type, from Jakub Sitnicki.

    29) Refactor a lot of networking socket option handling code in order to
    avoid set_fs() calls, from Christoph Hellwig.

    30) Add rfc4884 support to icmp code, from Willem de Bruijn.

    31) Support TBF offload in dpaa2-eth driver, from Ioana Ciornei.

    32) Support XDP_REDIRECT in qede driver, from Alexander Lobakin.

    33) Support PCI relaxed ordering in mlx5 driver, from Aya Levin.

    34) Support TCP syncookies in MPTCP, from Flowian Westphal.

    35) Fix several tricky cases of PMTU handling wrt. briding, from Stefano
    Brivio.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2056 commits)
    net: thunderx: initialize VF's mailbox mutex before first usage
    usb: hso: remove bogus check for EINPROGRESS
    usb: hso: no complaint about kmalloc failure
    hso: fix bailout in error case of probe
    ip_tunnel_core: Fix build for archs without _HAVE_ARCH_IPV6_CSUM
    selftests/net: relax cpu affinity requirement in msg_zerocopy test
    mptcp: be careful on subflow creation
    selftests: rtnetlink: make kci_test_encap() return sub-test result
    selftests: rtnetlink: correct the final return value for the test
    net: dsa: sja1105: use detected device id instead of DT one on mismatch
    tipc: set ub->ifindex for local ipv6 address
    ipv6: add ipv6_dev_find()
    net: openvswitch: silence suspicious RCU usage warning
    Revert "vxlan: fix tos value before xmit"
    ptp: only allow phase values lower than 1 period
    farsync: switch from 'pci_' to 'dma_' API
    wan: wanxl: switch from 'pci_' to 'dma_' API
    hv_netvsc: do not use VF device if link is down
    dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
    net: macb: Properly handle phylink on at91sam9x
    ...

    Linus Torvalds
     

23 Jul, 2020

2 commits

  • Replace the spinlock that serializes the MC commands with a raw
    spinlock. This is needed for the RT kernel because there are MC
    commands sent in interrupt context.

    Signed-off-by: Laurentiu Tudor
    Signed-off-by: Ioana Ciornei
    Reviewed-by: Laurentiu Tudor
    Link: https://lore.kernel.org/r/20200717154800.17169-3-ioana.ciornei@nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Laurentiu Tudor
     
  • The MC bus has different types of devices that can be discovered on the
    bus. Add the missing device types.

    Signed-off-by: Ioana Ciornei
    Reviewed-by: Laurentiu Tudor
    Link: https://lore.kernel.org/r/20200717154800.17169-2-ioana.ciornei@nxp.com
    Signed-off-by: Greg Kroah-Hartman

    Ioana Ciornei
     

06 Jul, 2020

1 commit

  • Ping tested:

    [ 11.808455] mscc_felix 0000:00:00.5 swp0: Link is Up - 1Gbps/Full - flow control rx/tx
    [ 11.816497] IPv6: ADDRCONF(NETDEV_CHANGE): swp0: link becomes ready

    [root@LS1028ARDB ~] # ethtool -s swp0 advertise 0x4
    [ 18.844591] mscc_felix 0000:00:00.5 swp0: Link is Down
    [ 22.048337] mscc_felix 0000:00:00.5 swp0: Link is Up - 100Mbps/Half - flow control off

    [root@LS1028ARDB ~] # ip addr add 192.168.1.1/24 dev swp0

    [root@LS1028ARDB ~] # ping 192.168.1.2
    PING 192.168.1.2 (192.168.1.2): 56 data bytes
    (...)
    ^C--- 192.168.1.2 ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 0.383/0.611/1.051 ms

    [root@LS1028ARDB ~] # ethtool -s swp0 advertise 0x10
    [ 355.637747] mscc_felix 0000:00:00.5 swp0: Link is Down
    [ 358.788034] mscc_felix 0000:00:00.5 swp0: Link is Up - 1Gbps/Half - flow control off

    [root@LS1028ARDB ~] # ping 192.168.1.2
    PING 192.168.1.2 (192.168.1.2): 56 data bytes
    (...)
    ^C
    --- 192.168.1.2 ping statistics ---
    16 packets transmitted, 16 packets received, 0% packet loss
    round-trip min/avg/max = 0.301/0.384/1.138 ms

    Signed-off-by: Vladimir Oltean
    Reviewed-by: Florian Fainelli
    Reviewed-by: Russell King
    Signed-off-by: David S. Miller

    Vladimir Oltean
     

05 Jun, 2020

1 commit

  • Pull ARM/SoC driver updates from Arnd Bergmann:
    "These are updates to SoC specific drivers that did not have another
    subsystem maintainer tree to go through for some reason:

    - Some bus and memory drivers for the MIPS P5600 based Baikal-T1 SoC
    that is getting added through the MIPS tree.

    - There are new soc_device identification drivers for TI K3, Qualcomm
    MSM8939

    - New reset controller drivers for NXP i.MX8MP, Renesas RZ/G1H, and
    Hisilicon hi6220

    - The SCMI firmware interface can now work across ARM SMC/HVC as a
    transport.

    - Mediatek platforms now use a new driver for their "MMSYS" hardware
    block that controls clocks and some other aspects in behalf of the
    media and gpu drivers.

    - Some Tegra processors have improved power management support,
    including getting woken up by the PMIC and cluster power down
    during idle.

    - A new v4l staging driver for Tegra is added.

    - Cleanups and minor bugfixes for TI, NXP, Hisilicon, Mediatek, and
    Tegra"

    * tag 'arm-drivers-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (155 commits)
    clk: sprd: fix compile-testing
    bus: bt1-axi: Build the driver into the kernel
    bus: bt1-apb: Build the driver into the kernel
    bus: bt1-axi: Use sysfs_streq instead of strncmp
    bus: bt1-axi: Optimize the return points in the driver
    bus: bt1-apb: Use sysfs_streq instead of strncmp
    bus: bt1-apb: Use PTR_ERR_OR_ZERO to return from request-regs method
    bus: bt1-apb: Fix show/store callback identations
    bus: bt1-apb: Include linux/io.h
    dt-bindings: memory: Add Baikal-T1 L2-cache Control Block binding
    memory: Add Baikal-T1 L2-cache Control Block driver
    bus: Add Baikal-T1 APB-bus driver
    bus: Add Baikal-T1 AXI-bus driver
    dt-bindings: bus: Add Baikal-T1 APB-bus binding
    dt-bindings: bus: Add Baikal-T1 AXI-bus binding
    staging: tegra-video: fix V4L2 dependency
    tee: fix crypto select
    drivers: soc: ti: knav_qmss_queue: Make knav_gp_range_ops static
    soc: ti: add k3 platforms chipid module driver
    dt-bindings: soc: ti: add binding for k3 platforms chipid module
    ...

    Linus Torvalds
     

23 May, 2020

1 commit

  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    sizeof(flexible-array-member) triggers a warning because flexible array
    members have incomplete type[1]. There are some instances of code in
    which the sizeof operator is being incorrectly/erroneously applied to
    zero-length arrays and the result is zero. Such instances may be hiding
    some bugs. So, this work (flexible-array member conversions) will also
    help to get completely rid of those sorts of issues.

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Signed-off-by: Li Yang

    Gustavo A. R. Silva
     

01 May, 2020

1 commit


02 Apr, 2020

1 commit

  • Pull crypto updates from Herbert Xu:
    "API:
    - Fix out-of-sync IVs in self-test for IPsec AEAD algorithms

    Algorithms:
    - Use formally verified implementation of x86/curve25519

    Drivers:
    - Enhance hwrng support in caam

    - Use crypto_engine for skcipher/aead/rsa/hash in caam

    - Add Xilinx AES driver

    - Add uacce driver

    - Register zip engine to uacce in hisilicon

    - Add support for OCTEON TX CPT engine in marvell"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (162 commits)
    crypto: af_alg - bool type cosmetics
    crypto: arm[64]/poly1305 - add artifact to .gitignore files
    crypto: caam - limit single JD RNG output to maximum of 16 bytes
    crypto: caam - enable prediction resistance in HRWNG
    bus: fsl-mc: add api to retrieve mc version
    crypto: caam - invalidate entropy register during RNG initialization
    crypto: caam - check if RNG job failed
    crypto: caam - simplify RNG implementation
    crypto: caam - drop global context pointer and init_done
    crypto: caam - use struct hwrng's .init for initialization
    crypto: caam - allocate RNG instantiation descriptor with GFP_DMA
    crypto: ccree - remove duplicated include from cc_aead.c
    crypto: chelsio - remove set but not used variable 'adap'
    crypto: marvell - enable OcteonTX cpt options for build
    crypto: marvell - add the Virtual Function driver for CPT
    crypto: marvell - add support for OCTEON TX CPT engine
    crypto: marvell - create common Kconfig and Makefile for Marvell
    crypto: arm/neon - memzero_explicit aes-cbc key
    crypto: bcm - Use scnprintf() for avoiding potential buffer overflow
    crypto: atmel-i2c - Fix wakeup fail
    ...

    Linus Torvalds
     

30 Mar, 2020

1 commit

  • Add a new api that returns Management Complex firmware version
    and make the required structure public. The api's first user will be
    the caam driver for setting prediction resistance bits.

    Signed-off-by: Andrei Botila
    Acked-by: Laurentiu Tudor
    Reviewed-by: Horia Geantă
    Cc: Chris Healy
    Cc: Lucas Stach
    Cc: Horia Geantă
    Cc: Herbert Xu
    Cc: Iuliana Prodan
    Cc: linux-crypto@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-imx@nxp.com
    Signed-off-by: Herbert Xu

    Andrei Botila
     

17 Feb, 2020

1 commit

  • The alarm function hadn't been supported by PTP clock driver.
    The recommended solution PHC + phc2sys + nanosleep provides
    best performance. So drop the code of alarm in ptp_qoriq driver.

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     

06 Jan, 2020

1 commit

  • Within the LS1028A SoC, the register map for the ENETC MDIO controller
    is instantiated a few times: for the central (external) MDIO controller,
    for the internal bus of each standalone ENETC port, and for the internal
    bus of the Felix switch.

    Refactoring is needed to support multiple MDIO buses from multiple
    drivers. The enetc_hw structure is made an opaque type and a smaller
    enetc_mdio_priv is created.

    'mdio_base' - MDIO registers base address - is being parameterized, to
    be able to work with different MDIO register bases.

    The ENETC MDIO bus operations are exported from the fsl-enetc-mdio
    kernel object, the same that registers the central MDIO controller (the
    dedicated PF). The ENETC main driver has been changed to select it, and
    use its exported helpers to further register its private MDIO bus. The
    DSA Felix driver will do the same.

    Signed-off-by: Claudiu Manoil
    Signed-off-by: Vladimir Oltean
    Signed-off-by: David S. Miller

    Claudiu Manoil
     

17 Dec, 2019

1 commit


01 Nov, 2019

1 commit

  • Using the newly added fsl_mc_get_endpoint function a fsl-mc driver can
    find its associated endpoint (another object at the other link of a MC
    firmware link).

    The API will be used in the following patch in order to discover the
    connected DPMAC object of a DPNI.

    Also, the fsl_mc_device_lookup function is made available to the entire
    fsl-mc bus driver and not just for the dprc driver.

    Signed-off-by: Ioana Ciornei
    Signed-off-by: David S. Miller

    Ioana Ciornei
     

19 Jun, 2019

1 commit

  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 4122 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 3029 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

26 Apr, 2019

1 commit


07 Mar, 2019

1 commit

  • Pull ARM SoC driver updates from Arnd Bergmann:
    "As usual, the drivers/tee and drivers/reset subsystems get merged
    here, with the expected set of smaller updates and some new hardware
    support. The tee subsystem now supports device drivers to be attached
    to a tee, the first example here is a random number driver with its
    implementation in the secure world.

    Three new power domain drivers get added for specific chip families:
    - Broadcom BCM283x chips (used in Raspberry Pi)
    - Qualcomm Snapdragon phone chips
    - Xilinx ZynqMP FPGA SoCs

    One new driver is added to talk to the BPMP firmware on NVIDIA
    Tegra210

    Existing drivers are extended for new SoC variants from NXP, NVIDIA,
    Amlogic and Qualcomm"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (113 commits)
    tee: optee: update optee_msg.h and optee_smc.h to dual license
    tee: add cancellation support to client interface
    dpaa2-eth: configure the cache stashing amount on a queue
    soc: fsl: dpio: configure cache stashing destination
    soc: fsl: dpio: enable frame data cache stashing per software portal
    soc: fsl: guts: make fsl_guts_get_svr() static
    hwrng: make symbol 'optee_rng_id_table' static
    tee: optee: Fix unsigned comparison with less than zero
    hwrng: Fix unsigned comparison with less than zero
    tee: fix possible error pointer ctx dereferencing
    hwrng: optee: Initialize some structs using memset instead of braces
    tee: optee: Initialize some structs using memset instead of braces
    soc: fsl: dpio: fix memory leak of a struct qbman on error exit path
    clk: tegra: dfll: Make symbol 'tegra210_cpu_cvb_tables' static
    soc: qcom: llcc-slice: Fix typos
    qcom: soc: llcc-slice: Consolidate some code
    qcom: soc: llcc-slice: Clear the global drv_data pointer on error
    drivers: soc: xilinx: Add ZynqMP power domain driver
    firmware: xilinx: Add APIs to control node status/power
    dt-bindings: power: Add ZynqMP power domain bindings
    ...

    Linus Torvalds
     

06 Mar, 2019

1 commit

  • Pull crypto update from Herbert Xu:
    "API:
    - Add helper for simple skcipher modes.
    - Add helper to register multiple templates.
    - Set CRYPTO_TFM_NEED_KEY when setkey fails.
    - Require neither or both of export/import in shash.
    - AEAD decryption test vectors are now generated from encryption
    ones.
    - New option CONFIG_CRYPTO_MANAGER_EXTRA_TESTS that includes random
    fuzzing.

    Algorithms:
    - Conversions to skcipher and helper for many templates.
    - Add more test vectors for nhpoly1305 and adiantum.

    Drivers:
    - Add crypto4xx prng support.
    - Add xcbc/cmac/ecb support in caam.
    - Add AES support for Exynos5433 in s5p.
    - Remove sha384/sha512 from artpec7 as hardware cannot do partial
    hash"

    [ There is a merge of the Freescale SoC tree in order to pull in changes
    required by patches to the caam/qi2 driver. ]

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (174 commits)
    crypto: s5p - add AES support for Exynos5433
    dt-bindings: crypto: document Exynos5433 SlimSSS
    crypto: crypto4xx - add missing of_node_put after of_device_is_available
    crypto: cavium/zip - fix collision with generic cra_driver_name
    crypto: af_alg - use struct_size() in sock_kfree_s()
    crypto: caam - remove redundant likely/unlikely annotation
    crypto: s5p - update iv after AES-CBC op end
    crypto: x86/poly1305 - Clear key material from stack in SSE2 variant
    crypto: caam - generate hash keys in-place
    crypto: caam - fix DMA mapping xcbc key twice
    crypto: caam - fix hash context DMA unmap size
    hwrng: bcm2835 - fix probe as platform device
    crypto: s5p-sss - Use AES_BLOCK_SIZE define instead of number
    crypto: stm32 - drop pointless static qualifier in stm32_hash_remove()
    crypto: chelsio - Fixed Traffic Stall
    crypto: marvell - Remove set but not used variable 'ivsize'
    crypto: ccp - Update driver messages to remove some confusion
    crypto: adiantum - add 1536 and 4096-byte test vectors
    crypto: nhpoly1305 - add a test vector with len % 16 != 0
    crypto: arm/aes-ce - update IV after partial final CTR block
    ...

    Linus Torvalds
     

27 Feb, 2019

1 commit


20 Feb, 2019

1 commit

  • Passing the struct ptp_clock_info caps by parameter is passing over 130 bytes
    of data by value on the stack. Optimize this by passing it by reference instead.
    Also shinks the object code size:

    Before:
    text data bss dec hex filename
    12596 2160 64 14820 39e4 drivers/ptp/ptp_qoriq.o

    After:
    text data bss dec hex filename
    12567 2160 64 14791 39c7 drivers/ptp/ptp_qoriq.o

    Signed-off-by: Colin Ian King
    Signed-off-by: David S. Miller

    Colin Ian King
     

13 Feb, 2019

5 commits

  • The 1588 timer on eTSEC Ethernet controller uses different
    register memory map with DPAA Ethernet controller.
    Now the new ENETC Ethernet controller uses same reigster
    memory map with DPAA. To support ENETC, let's use register
    memory map of DPAA/ENETC in default.

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     
  • There is QorIQ 1588 timer IP block on the new ENETC Ethernet
    controller. However it uses little endian mode which is different
    with before. This patch is to add little endian support for the
    driver by using "little-endian" dts node property.

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     
  • Moved QorIQ PTP clock initialization/free into new functions
    ptp_qoriq_init()/ptp_qoriq_free(). These functions could also
    be reused by ENETC PTP drvier which is a PCI driver for same
    1588 timer IP block.

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     
  • This patch is to make functions of ptp operations global,
    so that ENETC PTP driver which is a PCI driver for same
    1588 timer IP block could reuse them.

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     
  • Strings containing "ptp_qoriq" or "qoriq_ptp" which were used for
    structure/function names were complained by users. Let's just use
    the unique "ptp_qoriq" to make these names more consistent.
    This patch is just to unify the names using "ptp_qoriq". It hasn't
    changed any functions.

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     

23 Jan, 2019

2 commits

  • This patch is to add debugfs support for ptp_qoriq. Current debugfs
    supports to control fiper1/fiper2 loopback mode. If the loopback mode
    is enabled, the fiper1/fiper2 pulse is looped back into trigger1/
    trigger2 input. This is very useful for validating hardware and driver
    without external hardware. Below is an example to enable fiper1 loopback.

    echo 1 > /sys/kernel/debug/2d10e00.ptp_clock/fiper1-loopback

    Signed-off-by: Yangbo Lu
    Signed-off-by: David S. Miller

    Yangbo Lu
     
  • The external trigger stamp FIFO was introduced as a new feature
    for QorIQ 1588 timer IP block. This patch is to support it by
    adding a new dts property "fsl,extts-fifo". Any QorIQ 1588 timer
    supporting this feature is required to add this property in its
    dts node.

    In addition, the FIFO should be cleaned up before enabling external
    trigger interrupts. Otherwise, there will be interrupts immediately
    just after enabling external trigger interrupts.

    Signed-off-by: Yangbo Lu
    Signed-off-by: Vladimir Oltean
    Signed-off-by: David S. Miller

    Yangbo Lu