lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221109230945.545440-1-jacob.e.keller@intel.com>
Date:   Wed,  9 Nov 2022 15:09:36 -0800
From:   Jacob Keller <jacob.e.keller@...el.com>
To:     netdev@...r.kernel.org, Jakub Kicinski <kuba@...nel.org>
Cc:     Richard Cochran <richardcochran@...il.com>,
        Jacob Keller <jacob.e.keller@...el.com>
Subject: [PATCH net-next 0/9] ptp: convert remaining users of .adjfreq

A handful of drivers remain which still use the .adjfreq interface instead
of the newer .adjfine interface. The new interface is preferred as it has a
more precise adjustment using scaled parts per million.

A handful of the remaining drivers are implemented with a common pattern
that can be refactored to use the adjust_by_scaled_ppm and
diff_by_scaled_ppm helper functions. These include the ptp_phc, ptp_ixp64x,
tg3, hclge, stmac, cpts and bnxt drivers. These are each refactored in a
separate change.

The remaining drivers, bnx2x, liquidio, cxgb4, fec, and qede implement
.adjfreq in a way different from the normal pattern expected by
adjust_by_scaled_ppm. Fixing these drivers to properly use .adjfine requires
specific knowledge of the hardware implementation. Instead I simply refactor
them to use .adjfine and convert scaled_ppm into ppb using the
scaled_ppm_to_ppb function.

Finally, the .adjfreq implementation interface is removed entirely. This
simplifies the interface and ensures that new drivers must implement the new
interface as they no longer have an alternative.

This still leaves parts per billion used as part of the max_adj interface,
and the core PTP stack still converts scaled_ppm to ppb to check this. I
plan to investigate fixing this in the future.

Jacob Keller (9):
  ptp_phc: convert .adjfreq to .adjfine
  ptp_ixp46x: convert .adjfreq to .adjfine
  ptp: tg3: convert .adjfreq to .adjfine
  ptp: hclge: convert .adjfreq to .adjfine
  ptp: stmac: convert .adjfreq to .adjfine
  ptp: cpts: convert .adjfreq to .adjfine
  ptp: bnxt: convert .adjfreq to .adjfine
  ptp: convert remaining drivers to adjfine interface
  ptp: remove the .adjfreq interface function

 .../net/ethernet/broadcom/bnx2x/bnx2x_main.c  |  9 ++++----
 drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 22 +++++-------------
 drivers/net/ethernet/broadcom/tg3.c           | 22 ++++++------------
 .../net/ethernet/cavium/liquidio/lio_main.c   | 11 +++++----
 .../net/ethernet/chelsio/cxgb4/cxgb4_ptp.c    | 13 +++++++----
 drivers/net/ethernet/freescale/fec_ptp.c      | 13 +++++++----
 .../hisilicon/hns3/hns3pf/hclge_ptp.c         | 22 ++++--------------
 drivers/net/ethernet/qlogic/qede/qede_ptp.c   | 13 +++++++----
 drivers/net/ethernet/sfc/ptp.c                |  7 +++---
 drivers/net/ethernet/sfc/siena/ptp.c          |  7 +++---
 .../net/ethernet/stmicro/stmmac/stmmac_ptp.c  | 23 ++++++-------------
 drivers/net/ethernet/ti/am65-cpts.c           |  5 ++--
 drivers/net/ethernet/ti/cpts.c                | 20 ++++------------
 drivers/net/ethernet/xscale/ptp_ixp46x.c      | 19 ++++-----------
 drivers/ptp/ptp_clock.c                       |  5 +---
 drivers/ptp/ptp_dte.c                         |  5 ++--
 drivers/ptp/ptp_pch.c                         | 19 ++++-----------
 include/linux/ptp_clock_kernel.h              |  7 ------
 18 files changed, 88 insertions(+), 154 deletions(-)


base-commit: 154ba79c9f160e652a2c9c46435b928b3bfae11f
-- 
2.38.0.83.gd420dda05763

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ