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-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP=VYLrNBjHgPJFzwBrQ4=5rouCD81PLW4f_TPZMkF7yObUdcA@mail.gmail.com>
Date:	Fri, 6 Apr 2012 00:25:32 -0400
From:	Paul Gortmaker <paul.gortmaker@...driver.com>
To:	Richard Cochran <richardcochran@...il.com>
Cc:	netdev@...r.kernel.org, David Miller <davem@...emloft.net>,
	Ben Hutchings <bhutchings@...arflare.com>,
	Martin Porter <mporter@...arflare.com>,
	Jacob Keller <jacob.e.keller@...el.com>,
	Jeff Kirsher <jeffrey.t.kirsher@...el.com>,
	John Ronciak <john.ronciak@...el.com>,
	e1000-devel@...ts.sourceforge.net, linux-next@...r.kernel.org
Subject: Re: [PATCH V4 net-next 04/26] gianfar: Support the get_ts_info
 ethtool method.

On Wed, Apr 4, 2012 at 4:59 AM, Richard Cochran
<richardcochran@...il.com> wrote:
> Signed-off-by: Richard Cochran <richardcochran@...il.com>
> ---
>  drivers/net/ethernet/freescale/gianfar.h         |    3 ++
>  drivers/net/ethernet/freescale/gianfar_ethtool.c |   29 ++++++++++++++++++++++
>  drivers/net/ethernet/freescale/gianfar_ptp.c     |    2 +
>  3 files changed, 34 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/ethernet/freescale/gianfar.h b/drivers/net/ethernet/freescale/gianfar.h
> index 4c9f8d4..2136c7f 100644
> --- a/drivers/net/ethernet/freescale/gianfar.h
> +++ b/drivers/net/ethernet/freescale/gianfar.h
> @@ -1210,4 +1210,7 @@ struct filer_table {
>        struct gfar_filer_entry fe[MAX_FILER_CACHE_IDX + 20];
>  };
>
> +/* The gianfar_ptp module will set this variable */
> +extern int gfar_phc_index;
> +
>  #endif /* __GIANFAR_H */
> diff --git a/drivers/net/ethernet/freescale/gianfar_ethtool.c b/drivers/net/ethernet/freescale/gianfar_ethtool.c
> index 8d74efd..27f49c7 100644
> --- a/drivers/net/ethernet/freescale/gianfar_ethtool.c
> +++ b/drivers/net/ethernet/freescale/gianfar_ethtool.c
> @@ -1739,6 +1739,34 @@ static int gfar_get_nfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
>        return ret;
>  }
>
> +int gfar_phc_index = -1;
> +
> +static int gfar_get_ts_info(struct net_device *dev,
> +                           struct ethtool_ts_info *info)
> +{
> +       struct gfar_private *priv = netdev_priv(dev);
> +
> +       if (!(priv->device_flags & FSL_GIANFAR_DEV_HAS_TIMER)) {
> +               info->so_timestamping =
> +                       SOF_TIMESTAMPING_RX_SOFTWARE |
> +                       SOF_TIMESTAMPING_SOFTWARE;

Commit 66636287 in linux-next appears to cause this:

drivers/net/ethernet/freescale/gianfar_ethtool.c:1751:4: error:
'SOF_TIMESTAMPING_RX_SOFTWARE' undeclared (first use in this function)
drivers/net/ethernet/freescale/gianfar_ethtool.c:1752:4: error:
'SOF_TIMESTAMPING_SOFTWARE' undeclared (first use in this function)

Needs an include of <linux/net_tstamp.h> ?

http://kisskb.ellerman.id.au/kisskb/buildresult/6039723/
http://kisskb.ellerman.id.au/kisskb/buildresult/6039704/
http://kisskb.ellerman.id.au/kisskb/buildresult/6040028/

I'd normally just provide a tested and signed off patch, but I'm kind of
limited to just browsing the build results at this particular moment.  Sorry
about that.

Paul.

> +               info->phc_index = -1;
> +               return 0;
> +       }
> +       info->so_timestamping =
> +               SOF_TIMESTAMPING_TX_HARDWARE |
> +               SOF_TIMESTAMPING_RX_HARDWARE |
> +               SOF_TIMESTAMPING_RAW_HARDWARE;
> +       info->phc_index = gfar_phc_index;
> +       info->tx_types =
> +               (1 << HWTSTAMP_TX_OFF) |
> +               (1 << HWTSTAMP_TX_ON);
> +       info->rx_filters =
> +               (1 << HWTSTAMP_FILTER_NONE) |
> +               (1 << HWTSTAMP_FILTER_ALL);
> +       return 0;
> +}
> +
>  const struct ethtool_ops gfar_ethtool_ops = {
>        .get_settings = gfar_gsettings,
>        .set_settings = gfar_ssettings,
> @@ -1761,4 +1789,5 @@ const struct ethtool_ops gfar_ethtool_ops = {
>  #endif
>        .set_rxnfc = gfar_set_nfc,
>        .get_rxnfc = gfar_get_nfc,
> +       .get_ts_info = gfar_get_ts_info,
>  };
> diff --git a/drivers/net/ethernet/freescale/gianfar_ptp.c b/drivers/net/ethernet/freescale/gianfar_ptp.c
> index 5fd620b..c08e5d4 100644
> --- a/drivers/net/ethernet/freescale/gianfar_ptp.c
> +++ b/drivers/net/ethernet/freescale/gianfar_ptp.c
> @@ -515,6 +515,7 @@ static int gianfar_ptp_probe(struct platform_device *dev)
>                err = PTR_ERR(etsects->clock);
>                goto no_clock;
>        }
> +       gfar_phc_clock = ptp_clock_index(etsects->clock);
>
>        dev_set_drvdata(&dev->dev, etsects);
>
> @@ -538,6 +539,7 @@ static int gianfar_ptp_remove(struct platform_device *dev)
>        gfar_write(&etsects->regs->tmr_temask, 0);
>        gfar_write(&etsects->regs->tmr_ctrl,   0);
>
> +       gfar_phc_clock = -1;
>        ptp_clock_unregister(etsects->clock);
>        iounmap(etsects->regs);
>        release_resource(etsects->rsrc);
> --
> 1.7.2.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ