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]
Date:   Tue, 8 Sep 2020 16:40:52 -0700
From:   Richard Cochran <richardcochran@...il.com>
To:     Russell King <rmk+kernel@...linux.org.uk>
Cc:     Alexandre Belloni <alexandre.belloni@...tlin.com>,
        Antoine Tenart <antoine.tenart@...tlin.com>,
        Matteo Croce <mcroce@...hat.com>,
        Andre Przywara <andre.przywara@....com>,
        Sven Auhagen <sven.auhagen@...eatech.de>,
        "David S. Miller" <davem@...emloft.net>,
        Jakub Kicinski <kuba@...nel.org>, netdev@...r.kernel.org
Subject: Re: [PATCH net-next v3 7/7] net: mvpp2: ptp: add support for
 transmit timestamping

On Tue, Sep 08, 2020 at 11:00:41PM +0100, Russell King wrote:

> @@ -2984,13 +2985,19 @@ static irqreturn_t mvpp2_isr(int irq, void *dev_id)
>  
>  static void mvpp2_isr_handle_ptp_queue(struct mvpp2_port *port, int nq)
>  {
> +	struct skb_shared_hwtstamps shhwtstamps;
> +	struct mvpp2_hwtstamp_queue *queue;
> +	struct sk_buff *skb;
>  	void __iomem *ptp_q;
> +	unsigned int id;
>  	u32 r0, r1, r2;
>  
>  	ptp_q = port->priv->iface_base + MVPP22_PTP_BASE(port->gop_id);
>  	if (nq)
>  		ptp_q += MVPP22_PTP_TX_Q1_R0 - MVPP22_PTP_TX_Q0_R0;
>  
> +	queue = &port->tx_hwtstamp_queue[nq];
> +
>  	while (1) {
>  		r0 = readl_relaxed(ptp_q + MVPP22_PTP_TX_Q0_R0) & 0xffff;
>  		if (!r0)
> @@ -2998,6 +3005,19 @@ static void mvpp2_isr_handle_ptp_queue(struct mvpp2_port *port, int nq)
>  
>  		r1 = readl_relaxed(ptp_q + MVPP22_PTP_TX_Q0_R1) & 0xffff;
>  		r2 = readl_relaxed(ptp_q + MVPP22_PTP_TX_Q0_R2) & 0xffff;
> +
> +		id = (r0 >> 1) & 31;
> +
> +		skb = queue->skb[id];
> +		queue->skb[id] = NULL;
> +		if (skb) {
> +			u32 ts = r2 << 19 | r1 << 3 | r0 >> 13;
> +
> +			netdev_info(port->dev, "tx stamp 0x%08x\n", ts);

This probably should be _debug instead.

> +			mvpp22_tai_tstamp(port->priv->tai, ts, &shhwtstamps);
> +			skb_tstamp_tx(skb, &shhwtstamps);
> +			dev_kfree_skb_any(skb);
> +		}
>  	}
>  }

Thanks,
Richard

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ