diff options
Diffstat (limited to 'net/dsa/dsa.c')
-rw-r--r-- | net/dsa/dsa.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c index 6cc5be2ec7f1..f8c549281c30 100644 --- a/net/dsa/dsa.c +++ b/net/dsa/dsa.c | |||
@@ -202,6 +202,22 @@ static void dsa_switch_destroy(struct dsa_switch *ds) | |||
202 | } | 202 | } |
203 | 203 | ||
204 | 204 | ||
205 | /* hooks for ethertype-less tagging formats *********************************/ | ||
206 | /* | ||
207 | * The original DSA tag format and some other tag formats have no | ||
208 | * ethertype, which means that we need to add a little hack to the | ||
209 | * networking receive path to make sure that received frames get | ||
210 | * the right ->protocol assigned to them when one of those tag | ||
211 | * formats is in use. | ||
212 | */ | ||
213 | bool dsa_uses_dsa_tags(void *dsa_ptr) | ||
214 | { | ||
215 | struct dsa_switch *ds = dsa_ptr; | ||
216 | |||
217 | return !!(ds->tag_protocol == htons(ETH_P_DSA)); | ||
218 | } | ||
219 | |||
220 | |||
205 | /* link polling *************************************************************/ | 221 | /* link polling *************************************************************/ |
206 | static void dsa_link_poll_work(struct work_struct *ugly) | 222 | static void dsa_link_poll_work(struct work_struct *ugly) |
207 | { | 223 | { |