1. 26 Dec, 2019 26 commits
    • Mao Wenan's avatar
      af_packet: refactoring code for prb_calc_retire_blk_tmo · 0914d2bb
      Mao Wenan authored
      If __ethtool_get_link_ksettings() is failed and with
      non-zero value, prb_calc_retire_blk_tmo() should return
      DEFAULT_PRB_RETIRE_TOV firstly.
      
      This patch is to refactory code and make it more readable.
      Signed-off-by: default avatarMao Wenan <maowenan@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0914d2bb
    • Paul Durrant's avatar
      xen-netback: support dynamic unbind/bind · 9476654b
      Paul Durrant authored
      By re-attaching RX, TX, and CTL rings during connect() rather than
      assuming they are freshly allocated (i.e. assuming the counters are zero),
      and avoiding forcing state to Closed in netback_remove() it is possible
      for vif instances to be unbound and re-bound from and to (respectively) a
      running guest.
      
      Dynamic unbind/bind is a highly useful feature for a backend module as it
      allows it to be unloaded and re-loaded (i.e. updated) without requiring
      domUs to be halted.
      
      This has been tested by running iperf as a server in the test VM and
      then running a client against it in a continuous loop, whilst also
      running:
      
      while true;
        do echo vif-$DOMID-$VIF >unbind;
        echo down;
        rmmod xen-netback;
        echo unloaded;
        modprobe xen-netback;
        cd $(pwd);
        brctl addif xenbr0 vif$DOMID.$VIF;
        ip link set vif$DOMID.$VIF up;
        echo up;
        sleep 5;
        done
      
      in dom0 from /sys/bus/xen-backend/drivers/vif to continuously unbind,
      unload, re-load, re-bind and re-plumb the backend.
      
      Clearly a performance drop was seen but no TCP connection resets were
      observed during this test and moreover a parallel SSH connection into the
      guest remained perfectly usable throughout.
      Signed-off-by: default avatarPaul Durrant <pdurrant@amazon.com>
      Reviewed-by: default avatarWei Liu <wei.liu@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9476654b
    • David S. Miller's avatar
      Merge branch 'RTL8211F-RGMII-RX-TX-delay-configuration-improvements' · 8d347992
      David S. Miller authored
      Martin Blumenstingl says:
      
      ====================
      RTL8211F: RGMII RX/TX delay configuration improvements
      
      In discussion with Andrew [0] we figured out that it would be best to
      make the RX delay of the RTL8211F PHY configurable (just like the TX
      delay is already configurable).
      
      While here I took the opportunity to add some logging to the TX delay
      configuration as well.
      
      There is no public documentation for the RX and TX delay registers.
      I received this information a while ago (and created this RfC patch
      back then: [1]). Realtek gave me permission to take the information
      from the datasheet extracts and phase them in my own words and publish
      that (I am not allowed to publish the datasheet extracts).
      
      I have tested these patches on two boards:
      - Amlogic Meson8b Odroid-C1
      - Amlogic GXM Khadas VIM2
      Both still behave as before these changes (iperf3 speeds are the same
      in both directions: RX and TX), which is expected because they are
      currently using phy-mode = "rgmii" with the RX delay not being generated
      by the PHY.
      
      [0] https://patchwork.ozlabs.org/patch/1215313/
      [1] https://patchwork.ozlabs.org/patch/843946/
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8d347992
    • Martin Blumenstingl's avatar
      net: phy: realtek: add support for configuring the RX delay on RTL8211F · 1b3047b5
      Martin Blumenstingl authored
      On RTL8211F the RX and TX delays (2ns) can be configured in two ways:
      - pin strapping (RXD1 for the TX delay and RXD0 for the RX delay, LOW
        means "off" and HIGH means "on") which is read during PHY reset
      - using software to configure the TX and RX delay registers
      
      So far only the configuration using pin strapping has been supported.
      Add support for enabling or disabling the RGMII RX delay based on the
      phy-mode to be able to get the RX delay into a known state. This is
      important because the RX delay has to be coordinated between the PHY,
      MAC and the PCB design (trace length). With an invalid RX delay applied
      (for example if both PHY and MAC add a 2ns RX delay) Ethernet may not
      work at all.
      
      Also add debug logging when configuring the RX delay (just like the TX
      delay) because this is a common source of problems.
      Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1b3047b5
    • Martin Blumenstingl's avatar
      net: phy: realtek: add logging for the RGMII TX delay configuration · 3aec743d
      Martin Blumenstingl authored
      RGMII requires a delay of 2ns between the data and the clock signal.
      There are at least three ways this can happen. One possibility is by
      having the PHY generate this delay.
      This is a common source for problems (for example with slow TX speeds or
      packet loss when sending data). The TX delay configuration of the
      RTL8211F PHY can be set either by pin-strappping the RXD1 pin (HIGH
      means enabled, LOW means disabled) or through configuring a paged
      register. The setting from the RXD1 pin is also reflected in the
      register.
      
      Add debug logging to the TX delay configuration on RTL8211F so it's
      easier to spot these issues (for example if the TX delay is enabled for
      both, the RTL8211F PHY and the MAC).
      This is especially helpful because there is no public datasheet for the
      RTL8211F PHY available with all the RX/TX delay specifics.
      Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3aec743d
    • David S. Miller's avatar
      Merge branch 'mlxsw-spectrum_router-Cleanups' · 1f4f16fa
      David S. Miller authored
      Ido Schimmel says:
      
      ====================
      mlxsw: spectrum_router: Cleanups
      
      This patch set removes from mlxsw code that is no longer necessary after
      the simplification of the IPv4 and IPv6 route offload API.
      
      The patches eliminate unnecessary code by taking advantage of the fact
      that mlxsw no longer needs to maintain a list of identical routes,
      following recent changes in route offload API.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f4f16fa
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Remove FIB entry list from FIB node · 7c4a7ec8
      Ido Schimmel authored
      As explained in previous patches, the driver no longer needs to maintain
      a list of identical FIB entries (i.e, same {tb_id, prefix, prefix
      length}) and therefore each FIB node can only store one FIB entry.
      
      Remove the FIB entry list and simplify the code.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7c4a7ec8
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Consolidate identical functions · b04720ae
      Ido Schimmel authored
      After the last patch mlxsw_sp_fib{4,6}_node_entry_link() and
      mlxsw_sp_fib{4,6}_node_entry_unlink() are identical and can therefore be
      consolidated into the same common function.
      
      Perform the consolidation.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b04720ae
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Make route creation and destruction symmetric · 0705297e
      Ido Schimmel authored
      Host routes that perform decapsulation of IP in IP tunnels have a
      special adjacency entry linked to them. This entry stores information
      such as the expected underlay source IP. When the route is deleted this
      entry needs to be freed.
      
      The allocation of the adjacency entry happens in
      mlxsw_sp_fib4_entry_type_set(), but it is freed in
      mlxsw_sp_fib4_node_entry_unlink().
      
      Create a new function - mlxsw_sp_fib4_entry_type_unset() - and free the
      adjacency entry there.
      
      This will allow us to consolidate mlxsw_sp_fib{4,6}_node_entry_unlink()
      in the next patch.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0705297e
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Eliminate dead code · 0d2fb5aa
      Ido Schimmel authored
      Since the driver no longer maintains a list of identical routes there is
      no route to promote when a route is deleted.
      
      Remove that code that took care of it.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0d2fb5aa
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Remove unnecessary checks · 231c8d2b
      Ido Schimmel authored
      Now that the networking stack takes care of only notifying the routes of
      interest, we do not need to maintain a list of identical routes.
      
      Remove the check that tests if the route is the first route in the FIB
      node.
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      231c8d2b
    • Andy Roulin's avatar
      bonding: rename AD_STATE_* to LACP_STATE_* · c1e46990
      Andy Roulin authored
      As the LACP actor/partner state is now part of the uapi, rename the
      3ad state defines with LACP prefix. The LACP prefix is preferred over
      BOND_3AD as the LACP standard moved to 802.1AX.
      
      Fixes: 826f66b3 ("bonding: move 802.3ad port state flags to uapi")
      Signed-off-by: default avatarAndy Roulin <aroulin@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c1e46990
    • Kevin Kou's avatar
      sctp: move trace_sctp_probe_path into sctp_outq_sack · f643ee29
      Kevin Kou authored
      The original patch bringed in the "SCTP ACK tracking trace event"
      feature was committed at Dec.20, 2017, it replaced jprobe usage
      with trace events, and bringed in two trace events, one is
      TRACE_EVENT(sctp_probe), another one is TRACE_EVENT(sctp_probe_path).
      The original patch intended to trigger the trace_sctp_probe_path in
      TRACE_EVENT(sctp_probe) as below code,
      
      +TRACE_EVENT(sctp_probe,
      +
      +	TP_PROTO(const struct sctp_endpoint *ep,
      +		 const struct sctp_association *asoc,
      +		 struct sctp_chunk *chunk),
      +
      +	TP_ARGS(ep, asoc, chunk),
      +
      +	TP_STRUCT__entry(
      +		__field(__u64, asoc)
      +		__field(__u32, mark)
      +		__field(__u16, bind_port)
      +		__field(__u16, peer_port)
      +		__field(__u32, pathmtu)
      +		__field(__u32, rwnd)
      +		__field(__u16, unack_data)
      +	),
      +
      +	TP_fast_assign(
      +		struct sk_buff *skb = chunk->skb;
      +
      +		__entry->asoc = (unsigned long)asoc;
      +		__entry->mark = skb->mark;
      +		__entry->bind_port = ep->base.bind_addr.port;
      +		__entry->peer_port = asoc->peer.port;
      +		__entry->pathmtu = asoc->pathmtu;
      +		__entry->rwnd = asoc->peer.rwnd;
      +		__entry->unack_data = asoc->unack_data;
      +
      +		if (trace_sctp_probe_path_enabled()) {
      +			struct sctp_transport *sp;
      +
      +			list_for_each_entry(sp, &asoc->peer.transport_addr_list,
      +					    transports) {
      +				trace_sctp_probe_path(sp, asoc);
      +			}
      +		}
      +	),
      
      But I found it did not work when I did testing, and trace_sctp_probe_path
      had no output, I finally found that there is trace buffer lock
      operation(trace_event_buffer_reserve) in include/trace/trace_events.h:
      
      static notrace void							\
      trace_event_raw_event_##call(void *__data, proto)			\
      {									\
      	struct trace_event_file *trace_file = __data;			\
      	struct trace_event_data_offsets_##call __maybe_unused __data_offsets;\
      	struct trace_event_buffer fbuffer;				\
      	struct trace_event_raw_##call *entry;				\
      	int __data_size;						\
      									\
      	if (trace_trigger_soft_disabled(trace_file))			\
      		return;							\
      									\
      	__data_size = trace_event_get_offsets_##call(&__data_offsets, args); \
      									\
      	entry = trace_event_buffer_reserve(&fbuffer, trace_file,	\
      				 sizeof(*entry) + __data_size);		\
      									\
      	if (!entry)							\
      		return;							\
      									\
      	tstruct								\
      									\
      	{ assign; }							\
      									\
      	trace_event_buffer_commit(&fbuffer);				\
      }
      
      The reason caused no output of trace_sctp_probe_path is that
      trace_sctp_probe_path written in TP_fast_assign part of
      TRACE_EVENT(sctp_probe), and it will be placed( { assign; } ) after the
      trace_event_buffer_reserve() when compiler expands Macro,
      
              entry = trace_event_buffer_reserve(&fbuffer, trace_file,        \
                                       sizeof(*entry) + __data_size);         \
                                                                              \
              if (!entry)                                                     \
                      return;                                                 \
                                                                              \
              tstruct                                                         \
                                                                              \
              { assign; }                                                     \
      
      so trace_sctp_probe_path finally can not acquire trace_event_buffer
      and return no output, that is to say the nest of tracepoint entry function
      is not allowed. The function call flow is:
      
      trace_sctp_probe()
      -> trace_event_raw_event_sctp_probe()
       -> lock buffer
       -> trace_sctp_probe_path()
         -> trace_event_raw_event_sctp_probe_path()  --nested
         -> buffer has been locked and return no output.
      
      This patch is to remove trace_sctp_probe_path from the TP_fast_assign
      part of TRACE_EVENT(sctp_probe) to avoid the nest of entry function,
      and trigger sctp_probe_path_trace in sctp_outq_sack.
      
      After this patch, you can enable both events individually,
        # cd /sys/kernel/debug/tracing
        # echo 1 > events/sctp/sctp_probe/enable
        # echo 1 > events/sctp/sctp_probe_path/enable
      
      Or, you can enable all the events under sctp.
      
        # echo 1 > events/sctp/enable
      Signed-off-by: default avatarKevin Kou <qdkevin.kou@gmail.com>
      Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f643ee29
    • David S. Miller's avatar
      Merge branch 'Peer-to-Peer-One-Step-time-stamping' · aea3dee8
      David S. Miller authored
      Richard Cochran says:
      
      ====================
      Peer to Peer One-Step time stamping
      
      This series adds support for PTP (IEEE 1588) P2P one-step time
      stamping along with a driver for a hardware device that supports this.
      
      If the hardware supports p2p one-step, it subtracts the ingress time
      stamp value from the Pdelay_Request correction field.  The user space
      software stack then simply copies the correction field into the
      Pdelay_Response, and on transmission the hardware adds the egress time
      stamp into the correction field.
      
      This new functionality extends CONFIG_NETWORK_PHY_TIMESTAMPING to
      cover MII snooping devices, but it still depends on phylib, just as
      that option does.  Expanding beyond phylib is not within the scope of
      the this series.
      
      User space support is available in the current linuxptp master branch.
      
      - Patch 1 adds phy_device methods for existing time stamping fields.
      - Patches 2-5 convert the stack and drivers to the new methods.
      - Patch 6 moves code around the dp83640 driver.
      - Patches 7-10 add support for MII time stamping in non-PHY devices.
      - Patch 11 adds the new P2P 1-step option.
      - Patch 12 adds a driver implementing the new option.
      
      Thanks,
      Richard
      
      Changed in v9:
      ~~~~~~~~~~~~~~
      
      - Fix two more drivers' switch/case blocks WRT the new HWTSTAMP ioctl.
      - Picked up two more review tags from Andrew.
      
      Changed in v8:
      ~~~~~~~~~~~~~~
      
      - Avoided adding forward functional declarations in the dp83640 driver.
      - Picked up Florian's new review tags and another one from Andrew.
      
      Changed in v7:
      ~~~~~~~~~~~~~~
      
      - Converted pr_debug|err to dev_ variants in new driver.
      - Fixed device tree documentation per Rob's v6 review.
      - Picked up Andrew's and Rob's review tags.
      - Silenced sparse warnings in new driver.
      
      Changed in v6:
      ~~~~~~~~~~~~~~
      
      - Added methods for accessing the phy_device time stamping fields.
      - Adjust the device tree documentation per Rob's v5 review.
      - Fixed the build failures due to missing exports.
      
      Changed in v5:
      ~~~~~~~~~~~~~~
      
      - Fixed build failure in macvlan.
      - Fixed latent bug with its gcc warning in the driver.
      
      Changed in v4:
      ~~~~~~~~~~~~~~
      
      - Correct error paths and PTR_ERR return values in the framework.
      - Expanded KernelDoc comments WRT PHY locking.
      - Pick up Andrew's review tag.
      
      Changed in v3:
      ~~~~~~~~~~~~~~
      
      - Simplify the device tree binding and document the time stamping
        phandle by itself.
      
      Changed in v2:
      ~~~~~~~~~~~~~~
      
      - Per the v1 review, changed the modeling of MII time stamping
        devices.  They are no longer a kind of mdio device.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aea3dee8
    • Richard Cochran's avatar
      ptp: Add a driver for InES time stamping IP core. · bad1eaa6
      Richard Cochran authored
      The InES at the ZHAW offers a PTP time stamping IP core.  The FPGA
      logic recognizes and time stamps PTP frames on the MII bus.  This
      patch adds a driver for the core along with a device tree binding to
      allow hooking the driver to MII buses.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bad1eaa6
    • Richard Cochran's avatar
      net: Introduce peer to peer one step PTP time stamping. · b6fd7b96
      Richard Cochran authored
      The 1588 standard defines one step operation for both Sync and
      PDelay_Resp messages.  Up until now, hardware with P2P one step has
      been rare, and kernel support was lacking.  This patch adds support of
      the mode in anticipation of new hardware developments.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b6fd7b96
    • Richard Cochran's avatar
      net: mdio: of: Register discovered MII time stampers. · 1dca22b1
      Richard Cochran authored
      When parsing a PHY node, register its time stamper, if any, and attach
      the instance to the PHY device.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1dca22b1
    • Richard Cochran's avatar
      dt-bindings: ptp: Introduce MII time stamping devices. · 25d12e1d
      Richard Cochran authored
      This patch add a new binding that allows non-PHY MII time stamping
      devices to find their buses.  The new documentation covers both the
      generic binding and one upcoming user.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      25d12e1d
    • Richard Cochran's avatar
      net: Add a layer for non-PHY MII time stamping drivers. · 767ff483
      Richard Cochran authored
      While PHY time stamping drivers can simply attach their interface
      directly to the PHY instance, stand alone drivers require support in
      order to manage their services.  Non-PHY MII time stamping drivers
      have a control interface over another bus like I2C, SPI, UART, or via
      a memory mapped peripheral.  The controller device will be associated
      with one or more time stamping channels, each of which sits snoops in
      on a MII bus.
      
      This patch provides a glue layer that will enable time stamping
      channels to find their controlling device.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      767ff483
    • Richard Cochran's avatar
      net: Introduce a new MII time stamping interface. · 4715f65f
      Richard Cochran authored
      Currently the stack supports time stamping in PHY devices.  However,
      there are newer, non-PHY devices that can snoop an MII bus and provide
      time stamps.  In order to support such devices, this patch introduces
      a new interface to be used by both PHY and non-PHY devices.
      
      In addition, the one and only user of the old PHY time stamping API is
      converted to the new interface.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4715f65f
    • Richard Cochran's avatar
      net: phy: dp83640: Move the probe and remove methods around. · 12d0efb9
      Richard Cochran authored
      An upcoming patch will change how the PHY time stamping functions are
      registered with the networking stack, and adapting this driver would
      entail adding forward declarations for four time stamping methods.
      However, forward declarations are considered to be stylistic defects.
      This patch avoids the issue by moving the probe and remove methods
      immediately above the phy_driver interface structure.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      12d0efb9
    • Richard Cochran's avatar
      net: netcp_ethss: Use the PHY time stamping interface. · bfd57b59
      Richard Cochran authored
      The netcp_ethss driver tests fields of the phy_device in order to
      determine whether to defer to the PHY's time stamping functionality.
      This patch replaces the open coded logic with an invocation of the
      proper methods.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bfd57b59
    • Richard Cochran's avatar
      net: ethtool: Use the PHY time stamping interface. · 7774ee23
      Richard Cochran authored
      The ethtool layer tests fields of the phy_device in order to determine
      whether to invoke the PHY's tsinfo ethtool callback.  This patch
      replaces the open coded logic with an invocation of the proper
      methods.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7774ee23
    • Richard Cochran's avatar
      net: vlan: Use the PHY time stamping interface. · dfe6d68f
      Richard Cochran authored
      The vlan layer tests fields of the phy_device in order to determine
      whether to invoke the PHY's tsinfo ethtool callback.  This patch
      replaces the open coded logic with an invocation of the proper
      methods.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dfe6d68f
    • Richard Cochran's avatar
      net: macvlan: Use the PHY time stamping interface. · d25de984
      Richard Cochran authored
      The macvlan layer tests fields of the phy_device in order to determine
      whether to invoke the PHY's tsinfo ethtool callback.  This patch
      replaces the open coded logic with an invocation of the proper
      methods.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d25de984
    • Richard Cochran's avatar
      net: phy: Introduce helper functions for time stamping support. · 0e5dafc8
      Richard Cochran authored
      Some parts of the networking stack and at least one driver test fields
      within the 'struct phy_device' in order to query time stamping
      capabilities and to invoke time stamping methods.  This patch adds a
      functional interface around the time stamping fields.  This will allow
      insulating the callers from future changes to the details of the time
      stamping implemenation.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0e5dafc8
  2. 25 Dec, 2019 14 commits