diff options
author | Jonathan Corbet <corbet@lwn.net> | 2019-10-29 04:43:29 -0600 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2019-10-29 04:43:29 -0600 |
commit | 822bbba0cabb50825a0ce22707dc45eb82d02853 (patch) | |
tree | ea61d4ca72cb60b4cae8e95f64eefa7cd2a36603 /net/dsa/tag_sja1105.c | |
parent | d41abfd7ae33cd3c1d9189438937d61cb75e690a (diff) | |
parent | 7d194c2100ad2a6dded545887d02754948ca5241 (diff) |
Merge tag 'v5.4-rc4' into docs-next
I need to pick up the independent changes made to
Documentation/core-api/memory-allocation.rst to be able to merge further
work without creating a total mess.
Diffstat (limited to 'net/dsa/tag_sja1105.c')
-rw-r--r-- | net/dsa/tag_sja1105.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/net/dsa/tag_sja1105.c b/net/dsa/tag_sja1105.c index 9c9aff3e52cf..63ef2a14c934 100644 --- a/net/dsa/tag_sja1105.c +++ b/net/dsa/tag_sja1105.c @@ -156,7 +156,11 @@ static struct sk_buff /* Step 1: A timestampable frame was received. * Buffer it until we get its meta frame. */ - if (is_link_local && sp->data->hwts_rx_en) { + if (is_link_local) { + if (!test_bit(SJA1105_HWTS_RX_EN, &sp->data->state)) + /* Do normal processing. */ + return skb; + spin_lock(&sp->data->meta_lock); /* Was this a link-local frame instead of the meta * that we were expecting? @@ -187,6 +191,12 @@ static struct sk_buff } else if (is_meta) { struct sk_buff *stampable_skb; + /* Drop the meta frame if we're not in the right state + * to process it. + */ + if (!test_bit(SJA1105_HWTS_RX_EN, &sp->data->state)) + return NULL; + spin_lock(&sp->data->meta_lock); stampable_skb = sp->data->stampable_skb; |