* [PATCH 0/2] ptp: more bug fixes for 3.1 and 3.0
@ 2011-09-20 11:25 Richard Cochran
2011-09-20 11:25 ` [PATCH 1/2] ptp: fix L2 event message recognition Richard Cochran
2011-09-20 11:25 ` [PATCH 2/2] dp83640: reduce driver noise Richard Cochran
0 siblings, 2 replies; 3+ messages in thread
From: Richard Cochran @ 2011-09-20 11:25 UTC (permalink / raw)
To: netdev; +Cc: linux-kernel, David Miller
These two patches fix two bugs in the PTP Hardware Clock drivers. The
drivers were first introduced in Linux version 3.0.
Thanks,
Richard
Richard Cochran (2):
ptp: fix L2 event message recognition
dp83640: reduce driver noise
drivers/net/phy/dp83640.c | 4 ++--
include/linux/ptp_classify.h | 13 ++++++++++---
2 files changed, 12 insertions(+), 5 deletions(-)
--
1.7.2.5
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] ptp: fix L2 event message recognition
2011-09-20 11:25 [PATCH 0/2] ptp: more bug fixes for 3.1 and 3.0 Richard Cochran
@ 2011-09-20 11:25 ` Richard Cochran
2011-09-20 11:25 ` [PATCH 2/2] dp83640: reduce driver noise Richard Cochran
1 sibling, 0 replies; 3+ messages in thread
From: Richard Cochran @ 2011-09-20 11:25 UTC (permalink / raw)
To: netdev; +Cc: linux-kernel, David Miller, stable
The IEEE 1588 standard defines two kinds of messages, event and general
messages. Event messages require time stamping, and general do not. When
using UDP transport, two separate ports are used for the two message
types.
The BPF designed to recognize event messages incorrectly classifies L2
general messages as event messages. This commit fixes the issue by
extending the filter to check the message type field for L2 PTP packets.
Event messages are be distinguished from general messages by testing
the "general" bit.
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
Cc: <stable@kernel.org>
---
include/linux/ptp_classify.h | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/include/linux/ptp_classify.h b/include/linux/ptp_classify.h
index e07e274..1dc420b 100644
--- a/include/linux/ptp_classify.h
+++ b/include/linux/ptp_classify.h
@@ -51,6 +51,7 @@
#define PTP_CLASS_V2_VLAN (PTP_CLASS_V2 | PTP_CLASS_VLAN)
#define PTP_EV_PORT 319
+#define PTP_GEN_BIT 0x08 /* indicates general message, if set in message type */
#define OFF_ETYPE 12
#define OFF_IHL 14
@@ -116,14 +117,20 @@ static inline int ptp_filter_init(struct sock_filter *f, int len)
{OP_OR, 0, 0, PTP_CLASS_IPV6 }, /* */ \
{OP_RETA, 0, 0, 0 }, /* */ \
/*L3x*/ {OP_RETK, 0, 0, PTP_CLASS_NONE }, /* */ \
-/*L40*/ {OP_JEQ, 0, 6, ETH_P_8021Q }, /* f goto L50 */ \
+/*L40*/ {OP_JEQ, 0, 9, ETH_P_8021Q }, /* f goto L50 */ \
{OP_LDH, 0, 0, OFF_ETYPE + 4 }, /* */ \
- {OP_JEQ, 0, 9, ETH_P_1588 }, /* f goto L60 */ \
+ {OP_JEQ, 0, 15, ETH_P_1588 }, /* f goto L60 */ \
+ {OP_LDB, 0, 0, ETH_HLEN + VLAN_HLEN }, /* */ \
+ {OP_AND, 0, 0, PTP_GEN_BIT }, /* */ \
+ {OP_JEQ, 0, 12, 0 }, /* f goto L6x */ \
{OP_LDH, 0, 0, ETH_HLEN + VLAN_HLEN }, /* */ \
{OP_AND, 0, 0, PTP_CLASS_VMASK }, /* */ \
{OP_OR, 0, 0, PTP_CLASS_VLAN }, /* */ \
{OP_RETA, 0, 0, 0 }, /* */ \
-/*L50*/ {OP_JEQ, 0, 4, ETH_P_1588 }, /* f goto L61 */ \
+/*L50*/ {OP_JEQ, 0, 7, ETH_P_1588 }, /* f goto L61 */ \
+ {OP_LDB, 0, 0, ETH_HLEN }, /* */ \
+ {OP_AND, 0, 0, PTP_GEN_BIT }, /* */ \
+ {OP_JEQ, 0, 4, 0 }, /* f goto L6x */ \
{OP_LDH, 0, 0, ETH_HLEN }, /* */ \
{OP_AND, 0, 0, PTP_CLASS_VMASK }, /* */ \
{OP_OR, 0, 0, PTP_CLASS_L2 }, /* */ \
--
1.7.2.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] dp83640: reduce driver noise
2011-09-20 11:25 [PATCH 0/2] ptp: more bug fixes for 3.1 and 3.0 Richard Cochran
2011-09-20 11:25 ` [PATCH 1/2] ptp: fix L2 event message recognition Richard Cochran
@ 2011-09-20 11:25 ` Richard Cochran
1 sibling, 0 replies; 3+ messages in thread
From: Richard Cochran @ 2011-09-20 11:25 UTC (permalink / raw)
To: netdev; +Cc: linux-kernel, David Miller
The driver has two warning messages that might be triggered
by normal use cases. When they appear, the messages give the
impression of a never ending series of errors.
This commit changes them to debug messages instead.
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
---
drivers/net/phy/dp83640.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/phy/dp83640.c b/drivers/net/phy/dp83640.c
index cb6e0b4..edd7304 100644
--- a/drivers/net/phy/dp83640.c
+++ b/drivers/net/phy/dp83640.c
@@ -589,7 +589,7 @@ static void decode_rxts(struct dp83640_private *dp83640,
prune_rx_ts(dp83640);
if (list_empty(&dp83640->rxpool)) {
- pr_warning("dp83640: rx timestamp pool is empty\n");
+ pr_debug("dp83640: rx timestamp pool is empty\n");
goto out;
}
rxts = list_first_entry(&dp83640->rxpool, struct rxts, list);
@@ -612,7 +612,7 @@ static void decode_txts(struct dp83640_private *dp83640,
skb = skb_dequeue(&dp83640->tx_queue);
if (!skb) {
- pr_warning("dp83640: have timestamp but tx_queue empty\n");
+ pr_debug("dp83640: have timestamp but tx_queue empty\n");
return;
}
ns = phy2txts(phy_txts);
--
1.7.2.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-09-20 11:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-20 11:25 [PATCH 0/2] ptp: more bug fixes for 3.1 and 3.0 Richard Cochran
2011-09-20 11:25 ` [PATCH 1/2] ptp: fix L2 event message recognition Richard Cochran
2011-09-20 11:25 ` [PATCH 2/2] dp83640: reduce driver noise Richard Cochran
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).