|
@@ -985,6 +985,14 @@ static int dsa_suspend(struct device *d)
|
|
|
struct dsa_switch_tree *dst = platform_get_drvdata(pdev);
|
|
|
int i, ret = 0;
|
|
|
|
|
|
+ dst->master_netdev->dsa_ptr = NULL;
|
|
|
+
|
|
|
+ /* If we used a tagging format that doesn't have an ethertype
|
|
|
+ * field, make sure that all packets from this point get sent
|
|
|
+ * without the tag and go through the regular receive path.
|
|
|
+ */
|
|
|
+ wmb();
|
|
|
+
|
|
|
for (i = 0; i < dst->pd->nr_chips; i++) {
|
|
|
struct dsa_switch *ds = dst->ds[i];
|
|
|
|