* [PATCH net] net: ptp: fix time stamp matching logic for VLAN packets.
@ 2014-11-12 10:33 Richard Cochran
2014-11-12 20:06 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Richard Cochran @ 2014-11-12 10:33 UTC (permalink / raw)
To: netdev; +Cc: David Miller, Stefan Sørensen
Commit ae5c6c6d "ptp: Classify ptp over ip over vlan packets" changed the
code in two drivers that matches time stamps with PTP frames, with the goal
of allowing VLAN tagged PTP packets to receive hardware time stamps.
However, that commit failed to account for the VLAN header when parsing
IPv4 packets. This patch fixes those two drivers to correctly match VLAN
tagged IPv4/UDP PTP messages with their time stamps.
This patch should also be applied to v3.17.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>
---
drivers/net/ethernet/ti/cpts.c | 2 +-
drivers/net/phy/dp83640.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/ti/cpts.c b/drivers/net/ethernet/ti/cpts.c
index ab92f67..4a4388b 100644
--- a/drivers/net/ethernet/ti/cpts.c
+++ b/drivers/net/ethernet/ti/cpts.c
@@ -264,7 +264,7 @@ static int cpts_match(struct sk_buff *skb, unsigned int ptp_class,
switch (ptp_class & PTP_CLASS_PMASK) {
case PTP_CLASS_IPV4:
- offset += ETH_HLEN + IPV4_HLEN(data) + UDP_HLEN;
+ offset += ETH_HLEN + IPV4_HLEN(data + offset) + UDP_HLEN;
break;
case PTP_CLASS_IPV6:
offset += ETH_HLEN + IP6_HLEN + UDP_HLEN;
diff --git a/drivers/net/phy/dp83640.c b/drivers/net/phy/dp83640.c
index 2954052..e22e602 100644
--- a/drivers/net/phy/dp83640.c
+++ b/drivers/net/phy/dp83640.c
@@ -791,7 +791,7 @@ static int match(struct sk_buff *skb, unsigned int type, struct rxts *rxts)
switch (type & PTP_CLASS_PMASK) {
case PTP_CLASS_IPV4:
- offset += ETH_HLEN + IPV4_HLEN(data) + UDP_HLEN;
+ offset += ETH_HLEN + IPV4_HLEN(data + offset) + UDP_HLEN;
break;
case PTP_CLASS_IPV6:
offset += ETH_HLEN + IP6_HLEN + UDP_HLEN;
@@ -934,7 +934,7 @@ static int is_sync(struct sk_buff *skb, int type)
switch (type & PTP_CLASS_PMASK) {
case PTP_CLASS_IPV4:
- offset += ETH_HLEN + IPV4_HLEN(data) + UDP_HLEN;
+ offset += ETH_HLEN + IPV4_HLEN(data + offset) + UDP_HLEN;
break;
case PTP_CLASS_IPV6:
offset += ETH_HLEN + IP6_HLEN + UDP_HLEN;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH net] net: ptp: fix time stamp matching logic for VLAN packets.
2014-11-12 10:33 [PATCH net] net: ptp: fix time stamp matching logic for VLAN packets Richard Cochran
@ 2014-11-12 20:06 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2014-11-12 20:06 UTC (permalink / raw)
To: richardcochran; +Cc: netdev, stefan.sorensen
From: Richard Cochran <richardcochran@gmail.com>
Date: Wed, 12 Nov 2014 11:33:52 +0100
> Commit ae5c6c6d "ptp: Classify ptp over ip over vlan packets" changed the
> code in two drivers that matches time stamps with PTP frames, with the goal
> of allowing VLAN tagged PTP packets to receive hardware time stamps.
>
> However, that commit failed to account for the VLAN header when parsing
> IPv4 packets. This patch fixes those two drivers to correctly match VLAN
> tagged IPv4/UDP PTP messages with their time stamps.
>
> This patch should also be applied to v3.17.
>
> Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Applied and queued up for -stable, thanks Richard.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-11-12 20:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-12 10:33 [PATCH net] net: ptp: fix time stamp matching logic for VLAN packets Richard Cochran
2014-11-12 20:06 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox