Re: [PATCH v3 1/9] ptp: Add generic ptp v2 header parsing function
From: Grygorii Strashko <grygorii.strashko@ti.com>
Date: 2020-08-04 20:57:13
On 31/07/2020 13:06, Kurt Kanzenbach wrote:
On Thu Jul 30 2020, Petr Machata wrote:quoted
Kurt Kanzenbach [off-list ref] writes:quoted
@@ -107,6 +107,37 @@ unsigned int ptp_classify_raw(const struct sk_buff *skb) } EXPORT_SYMBOL_GPL(ptp_classify_raw); +struct ptp_header *ptp_parse_header(struct sk_buff *skb, unsigned int type) +{ + u8 *data = skb_mac_header(skb); + u8 *ptr = data;One of the "data" and "ptr" variables is superfluous.Yeah. Can be shortened to u8 *ptr = skb_mac_header(skb);
Actually usage of skb_mac_header(skb) breaks CPTS RX time-stamping on am571x platform PATCH 6. The CPSW RX timestamp requested after full packet put in SKB, but before calling eth_type_trans(). So, skb->data pints on Eth header, but skb_mac_header() return garbage. Below diff fixes it for me.
--- a/net/core/ptp_classifier.c
+++ b/net/core/ptp_classifier.c@@ -109,7 +109,7 @@ EXPORT_SYMBOL_GPL(ptp_classify_raw); struct ptp_header *ptp_parse_header(struct sk_buff *skb, unsigned int type) { - u8 *data = skb_mac_header(skb); + u8 *data = skb->data; u8 *ptr = data; if (type & PTP_CLASS_VLAN)
However, I'll wait a bit before sending the next version. So, that the other maintainers have time to test their drivers.
-- Best regards, grygorii