Message ID | 20221027113248.420216-1-michael@walle.cc |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp180318wru; Thu, 27 Oct 2022 04:47:44 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7AQ5edw+PL0YJsJhkRm97t6G2ffwwJwz9T8ua03Rv3+mZ2xIXkslw1EOfB3jVBM11q2t+b X-Received: by 2002:a17:907:a422:b0:7a6:c4cb:dd42 with SMTP id sg34-20020a170907a42200b007a6c4cbdd42mr19569293ejc.735.1666871264007; Thu, 27 Oct 2022 04:47:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666871264; cv=none; d=google.com; s=arc-20160816; b=VWy81vD2DNY6gRtJMk3TKRYNIqaYq5hsWCyldm1BZ9mJZR4Dp3bGnyL3lEc38vR0b6 oz7MQGgJ1wRk+AR6eWMxAU0a+4saxckjHjFFu0T+koC5hsMTO8t7sgLEAh5B1UzgHlLk BydeSc8CUam6PuVBLf2jZws2ZKwbQIpjqHxA8AEu5eGgzyd+EthDMkvnNS6b1o4B+1lf IuqzIVohdOxJpHjFbkH5f84qwO33mJR4zQH2XAGJmwukJyngeGFipmpuQ8dJMjz/GYd3 9GGnN8ToohK2lGT+JWjBOVHr0r0E3e6Qjcv9K275FO9e8k0FfEHYFzuHLLe7bb8UAaxY LXlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=86Syqd89b1/HCshZzD+et9Bo2opsZhhVIvgaLhrsOcI=; b=Ic8oo/wDm6g8nHmkG2BXxxL9p3H4NP9w9rIKmNaNhVAd8JOWaFvfHhf8pgwUawuc8E IvepdNYkz66XUfqU2G6U+OCKPCr2ROwXvQgKvS7CWyVeCWvBbjQVzPeeQwHx/oOOt/Ip olJ2E9+IlJed6QGzEAOwgBq9gKqza7OHLYJEreBWPje24KVUPiIDc6i7gVJzR9HC5hRp FMXs39Bzk9ZHTP9+DO3B/OnAUJPodFei84XBJcmORVsA6SnXPlQIVXfHxcMMoXTUiSB5 TWBSbERTTq2nS/trnwJu2y0dWiz9ir32g29ZjQAKMJ3CpmWX05Hfi53/LpM1lqVU3FGF 05Cg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@walle.cc header.s=mail2022082101 header.b="mvJXS1/G"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=walle.cc Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h11-20020a05640250cb00b0045cca8f9a0asi1425979edb.580.2022.10.27.04.47.19; Thu, 27 Oct 2022 04:47:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@walle.cc header.s=mail2022082101 header.b="mvJXS1/G"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=walle.cc Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235333AbiJ0LdH (ORCPT <rfc822;chrisfriedt@gmail.com> + 99 others); Thu, 27 Oct 2022 07:33:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235341AbiJ0LdB (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 27 Oct 2022 07:33:01 -0400 Received: from mail.3ffe.de (0001.3ffe.de [159.69.201.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B8B61211D9 for <linux-kernel@vger.kernel.org>; Thu, 27 Oct 2022 04:32:59 -0700 (PDT) Received: from mwalle01.kontron.local. (unknown [213.135.10.150]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.3ffe.de (Postfix) with ESMTPSA id 7E33E1B40; Thu, 27 Oct 2022 13:32:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walle.cc; s=mail2022082101; t=1666870376; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=86Syqd89b1/HCshZzD+et9Bo2opsZhhVIvgaLhrsOcI=; b=mvJXS1/G8NnG3D8HvhI7aMBDN2AXxviQSZavm7F0DzocELCt0oHdv4/KtBG5eJQ7oGQuHa gmQ4L6B6yEJJ2fneIa9NrNWrDt4jgLaN3G0cIMq56FyxznBTnb78gxVtlUeHys9Pu8q3FD uty1ze5E+RFo9Wcx1tZrZWGBVkLQhp/nPJdxWgSddvpdP3TgpUHll5nFJlAWiBXIdZikHj dmotv999hjgrG09N0X8YkS72kyk1hm2Cw8+06a5oocyBcFw8qyHa/m8WJ+fRWS/rZTsNN/ PoMnKhHxwRZ7l6SX4CAWBpRxS6xlhfYycrSjpwtw6/yDINY7LmShYi3ud4N+dQ== From: Michael Walle <michael@walle.cc> To: Shawn Guo <shawnguo@kernel.org>, Li Yang <leoyang.li@nxp.com>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Vladimir Oltean <vladimir.oltean@nxp.com> Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Heiko Thiery <heiko.thiery@gmail.com>, Michael Walle <michael@walle.cc> Subject: [PATCH] Revert "arm64: dts: ls1028a: sl28: use ocelot-8021q tagging by default" Date: Thu, 27 Oct 2022 13:32:48 +0200 Message-Id: <20221027113248.420216-1-michael@walle.cc> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam: Yes X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747841202750791859?= X-GMAIL-MSGID: =?utf-8?q?1747841202750791859?= |
Series |
Revert "arm64: dts: ls1028a: sl28: use ocelot-8021q tagging by default"
|
|
Commit Message
Michael Walle
Oct. 27, 2022, 11:32 a.m. UTC
This reverts commit be0b178c50c37a666d54f435da71cf9f008362a0.
This commit will break networking on the sl28 boards if the tagger is
not compiled into the kernel. If a non-default tagger is used, the
kernel doesn't do a request_module(). Fixing that is also not that
trivial because the tagger modules are loaded by ids, not by name.
Thus for now, just revert to the default tagger until that is fixed.
Fixes: be0b178c50c3 ("arm64: dts: ls1028a: sl28: use ocelot-8021q tagging by default")
Reported-by: Heiko Thiery <heiko.thiery@gmail.com>
Signed-off-by: Michael Walle <michael@walle.cc>
---
Vladimir, I'm not sure how to fix that one. Adding aliases to the tagger
modules? Something like "MODULE_ALIAS("dsa_tag-ocelot-8021q");" and then do
a request_module() in dsa_find_tagger_by_name(), too?
.../arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts | 8 --------
1 file changed, 8 deletions(-)
Comments
On Thu, Oct 27, 2022 at 01:32:48PM +0200, Michael Walle wrote: > This reverts commit be0b178c50c37a666d54f435da71cf9f008362a0. > > This commit will break networking on the sl28 boards if the tagger is > not compiled into the kernel. If a non-default tagger is used, the > kernel doesn't do a request_module(). Fixing that is also not that > trivial because the tagger modules are loaded by ids, not by name. > Thus for now, just revert to the default tagger until that is fixed. > > Fixes: be0b178c50c3 ("arm64: dts: ls1028a: sl28: use ocelot-8021q tagging by default") > Reported-by: Heiko Thiery <heiko.thiery@gmail.com> > Signed-off-by: Michael Walle <michael@walle.cc> > --- > Vladimir, I'm not sure how to fix that one. Adding aliases to the tagger > modules? Something like "MODULE_ALIAS("dsa_tag-ocelot-8021q");" and then do > a request_module() in dsa_find_tagger_by_name(), too? > > .../arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts | 8 -------- > 1 file changed, 8 deletions(-) > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > index 72429b37a8b4..771c50c7f50a 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > @@ -324,14 +324,6 @@ &lpuart1 { > status = "okay"; > }; > > -&mscc_felix_port4 { > - dsa-tag-protocol = "ocelot-8021q"; > -}; > - > -&mscc_felix_port5 { > - dsa-tag-protocol = "ocelot-8021q"; > -}; > - > &usb0 { > status = "okay"; > }; > -- > 2.30.2 > Pretty nasty. Of all the switch drivers that support tagging protocol change, Ocelot/Felix is the only one with this bug, because in all other cases, the default and the alternative tagging protocol are part of the same .ko. Only here we have tag_ocelot.ko and tag_ocelot_8021q.ko. The problem preventing us from calling request_module() is that currently, the string identifying the tagging protocol (to which we match device tree information) is part of the tag_*.ko. I think we'd need the translation table between string and enum dsa_tag_protocol to be part of dsa_core.ko.
On Thu, Oct 27, 2022 at 03:05:19PM +0300, Vladimir Oltean wrote: > On Thu, Oct 27, 2022 at 01:32:48PM +0200, Michael Walle wrote: > > This reverts commit be0b178c50c37a666d54f435da71cf9f008362a0. > > > > This commit will break networking on the sl28 boards if the tagger is > > not compiled into the kernel. If a non-default tagger is used, the > > kernel doesn't do a request_module(). Fixing that is also not that > > trivial because the tagger modules are loaded by ids, not by name. > > Thus for now, just revert to the default tagger until that is fixed. > > > > Fixes: be0b178c50c3 ("arm64: dts: ls1028a: sl28: use ocelot-8021q tagging by default") > > Reported-by: Heiko Thiery <heiko.thiery@gmail.com> > > Signed-off-by: Michael Walle <michael@walle.cc> > > --- > > Vladimir, I'm not sure how to fix that one. Adding aliases to the tagger > > modules? Something like "MODULE_ALIAS("dsa_tag-ocelot-8021q");" and then do > > a request_module() in dsa_find_tagger_by_name(), too? > > > > .../arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts | 8 -------- > > 1 file changed, 8 deletions(-) > > > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > > index 72429b37a8b4..771c50c7f50a 100644 > > --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts > > @@ -324,14 +324,6 @@ &lpuart1 { > > status = "okay"; > > }; > > > > -&mscc_felix_port4 { > > - dsa-tag-protocol = "ocelot-8021q"; > > -}; > > - > > -&mscc_felix_port5 { > > - dsa-tag-protocol = "ocelot-8021q"; > > -}; > > - > > &usb0 { > > status = "okay"; > > }; > > -- > > 2.30.2 > > > > Pretty nasty. Of all the switch drivers that support tagging protocol > change, Ocelot/Felix is the only one with this bug, because in all other > cases, the default and the alternative tagging protocol are part of the > same .ko. Only here we have tag_ocelot.ko and tag_ocelot_8021q.ko. > > The problem preventing us from calling request_module() is that currently, > the string identifying the tagging protocol (to which we match device > tree information) is part of the tag_*.ko. I think we'd need the > translation table between string and enum dsa_tag_protocol to be part of > dsa_core.ko. I think we should treat what we committed to in terms of dt-bindings with utmost respect, so I would consider your proposed revert as the absolute last option. Reverting a device tree change doesn't mean that the device trees without the revert will disappear from circulation. So far we have 3 options for fixing this within the kernel - make tag_ocelot.o and tag_ocelot_8021q.o link into the same tag_ocelot.ko - change the MODULE_ALIAS() of all tagging protocol driver modules from "dsa_tag-<number" to something containing their string name - what you proposed. I don't know why the current MODULE_ALIAS() is formatted the way it is. Maybe Andrew can comment on whether this is feasible. I think there isn't any backwards compatibility concern, since only modules compiled for a certain kernel version are expected to be loaded. - put a translation table between string and MODULE_ALIAS() inside dsa_core.ko, which potentially duplicates code. Maybe if we auto-generate it somehow?
On Thu, Oct 27, 2022 at 03:27:27PM +0300, Vladimir Oltean wrote: > I think we should treat what we committed to in terms of dt-bindings > with utmost respect, so I would consider your proposed revert as the > absolute last option. Reverting a device tree change doesn't mean that > the device trees without the revert will disappear from circulation. > > So far we have 3 options for fixing this within the kernel > > - make tag_ocelot.o and tag_ocelot_8021q.o link into the same > tag_ocelot.ko > > - change the MODULE_ALIAS() of all tagging protocol driver modules from > "dsa_tag-<number" to something containing their string name - what you > proposed. I don't know why the current MODULE_ALIAS() is formatted the > way it is. Maybe Andrew can comment on whether this is feasible. > I think there isn't any backwards compatibility concern, since only > modules compiled for a certain kernel version are expected to be > loaded. > > - put a translation table between string and MODULE_ALIAS() inside > dsa_core.ko, which potentially duplicates code. Maybe if we > auto-generate it somehow? Sorry for sending so many emails. I think the problem we should fix first and foremost is that, if there's a user protocol specified in the device tree but the kernel fails to load it, it should simply stick with the default tagging protocol, instead of failing to probe. Everything else can be dealt with as a future refinement.
Am 2022-10-27 14:40, schrieb Vladimir Oltean: > Sorry for sending so many emails. I think the problem we should fix > first and foremost is that, if there's a user protocol specified in the > device tree but the kernel fails to load it, it should simply stick > with > the default tagging protocol, instead of failing to probe. Everything > else can be dealt with as a future refinement. Sounds good to me. Should I come up with a patch or will you do it? -michael
On Thu, Oct 27, 2022 at 03:00:23PM +0200, Michael Walle wrote: > Am 2022-10-27 14:40, schrieb Vladimir Oltean: > > > Sorry for sending so many emails. I think the problem we should fix > > first and foremost is that, if there's a user protocol specified in the > > device tree but the kernel fails to load it, it should simply stick with > > the default tagging protocol, instead of failing to probe. Everything > > else can be dealt with as a future refinement. > > Sounds good to me. Should I come up with a patch or will you do it? I'll try to prepare a patch and copy you and Heiko. I hope to do that soon, but I've been running with hardirqs disabled for the past week or so, and as you can imagine, things are a bit crazy right now and there's a lot of pending work to do
Am 2022-10-27 14:27, schrieb Vladimir Oltean: >> Pretty nasty. Of all the switch drivers that support tagging protocol >> change, Ocelot/Felix is the only one with this bug, because in all >> other >> cases, the default and the alternative tagging protocol are part of >> the >> same .ko. Only here we have tag_ocelot.ko and tag_ocelot_8021q.ko. >> >> The problem preventing us from calling request_module() is that >> currently, >> the string identifying the tagging protocol (to which we match device >> tree information) is part of the tag_*.ko. I think we'd need the >> translation table between string and enum dsa_tag_protocol to be part >> of >> dsa_core.ko. > > I think we should treat what we committed to in terms of dt-bindings > with utmost respect, so I would consider your proposed revert as the > absolute last option. Reverting a device tree change doesn't mean that > the device trees without the revert will disappear from circulation. > > So far we have 3 options for fixing this within the kernel > > - make tag_ocelot.o and tag_ocelot_8021q.o link into the same > tag_ocelot.ko > > - change the MODULE_ALIAS() of all tagging protocol driver modules from > "dsa_tag-<number" to something containing their string name - what > you > proposed. I don't know why the current MODULE_ALIAS() is formatted > the > way it is. Maybe Andrew can comment on whether this is feasible. > I think there isn't any backwards compatibility concern, since only > modules compiled for a certain kernel version are expected to be > loaded. FWIW, you can have multiple aliases if we somehow need to keep the IDs, too. > - put a translation table between string and MODULE_ALIAS() inside > dsa_core.ko, which potentially duplicates code. Maybe if we > auto-generate it somehow? Yeah, I also thought of a table with of name to module alias mapping. But then you'd have two places to keep in sync (of not autogenerated). -michael
Am 2022-10-27 13:32, schrieb Michael Walle: > This reverts commit be0b178c50c37a666d54f435da71cf9f008362a0. > > This commit will break networking on the sl28 boards if the tagger is > not compiled into the kernel. If a non-default tagger is used, the > kernel doesn't do a request_module(). Fixing that is also not that > trivial because the tagger modules are loaded by ids, not by name. > Thus for now, just revert to the default tagger until that is fixed. > > Fixes: be0b178c50c3 ("arm64: dts: ls1028a: sl28: use ocelot-8021q > tagging by default") > Reported-by: Heiko Thiery <heiko.thiery@gmail.com> > Signed-off-by: Michael Walle <michael@walle.cc> Please disregard this patch. The proper fix is here: https://lore.kernel.org/netdev/20221027145439.3086017-1-vladimir.oltean@nxp.com/ -michael
On Thu, Oct 27, 2022 at 06:00:04PM +0200, Michael Walle wrote: > > - change the MODULE_ALIAS() of all tagging protocol driver modules from > > "dsa_tag-<number" to something containing their string name - what you > > proposed. I don't know why the current MODULE_ALIAS() is formatted the > > way it is. Maybe Andrew can comment on whether this is feasible. > > I think there isn't any backwards compatibility concern, since only > > modules compiled for a certain kernel version are expected to be > > loaded. > > FWIW, you can have multiple aliases if we somehow need to keep the IDs, > too. Yeah, that's worth exploring, but it means that we have 2 code paths for request_module() with different string formats. To me this is slightly undesirable, we should try to consolidate the mechanisms in the core. > > - put a translation table between string and MODULE_ALIAS() inside > > dsa_core.ko, which potentially duplicates code. Maybe if we > > auto-generate it somehow? > > Yeah, I also thought of a table with of name to module alias mapping. > But then you'd have two places to keep in sync (of not autogenerated). Well, to be fair, this is not exactly true. As far as I could find (grep for "ops->name" in net/dsa), there are only 3 instances of reading the "name" field of struct dsa_device_ops, and none of them are from a fast path. I can imagine a table along the lines of: static const char * const dsa_tag_proto_names[] = { [DSA_TAG_PROTO_NONE] = "none", [DSA_TAG_PROTO_BRCM] = "brcm", .... }; which is then used to directly replace ops->name (becomes dsa_tag_proto_names[ops->proto]). Then, we could add a new function "dsa_tag_protocol_name_to_id()" or something along those lines, and construct the modalias string based on that. No duplication necessary, since we would remove dsa_device_ops :: name.
Am 2022-10-27 20:04, schrieb Vladimir Oltean: > On Thu, Oct 27, 2022 at 06:00:04PM +0200, Michael Walle wrote: >> > - change the MODULE_ALIAS() of all tagging protocol driver modules from >> > "dsa_tag-<number" to something containing their string name - what you >> > proposed. I don't know why the current MODULE_ALIAS() is formatted the >> > way it is. Maybe Andrew can comment on whether this is feasible. >> > I think there isn't any backwards compatibility concern, since only >> > modules compiled for a certain kernel version are expected to be >> > loaded. >> >> FWIW, you can have multiple aliases if we somehow need to keep the >> IDs, >> too. > > Yeah, that's worth exploring, but it means that we have 2 code paths > for > request_module() with different string formats. To me this is slightly > undesirable, we should try to consolidate the mechanisms in the core. > >> > - put a translation table between string and MODULE_ALIAS() inside >> > dsa_core.ko, which potentially duplicates code. Maybe if we >> > auto-generate it somehow? >> >> Yeah, I also thought of a table with of name to module alias mapping. >> But then you'd have two places to keep in sync (of not autogenerated). > > Well, to be fair, this is not exactly true. As far as I could find > (grep for "ops->name" in net/dsa), there are only 3 instances of > reading > the "name" field of struct dsa_device_ops, and none of them are from a > fast path. > > I can imagine a table along the lines of: > > static const char * const dsa_tag_proto_names[] = { > [DSA_TAG_PROTO_NONE] = "none", > [DSA_TAG_PROTO_BRCM] = "brcm", > .... > }; > > which is then used to directly replace ops->name > (becomes dsa_tag_proto_names[ops->proto]). > > Then, we could add a new function "dsa_tag_protocol_name_to_id()" or > something along those lines, and construct the modalias string based on > that. > > No duplication necessary, since we would remove dsa_device_ops :: name. If one would a new tagger you'd need to add it to dsa_tag_proto_names[] as well as adding the tagger source file. Thus, two places to keep in sync. And you don't have all the information in one place, e.g. the tagger module. The name of the tagger as used in sysfs or device tree is then in the core. Just wanted to point that out. After all it's up to you as the maintainer to decide ;) -michael
On Thu, Oct 27, 2022 at 09:10:20PM +0200, Michael Walle wrote: > If one would a new tagger you'd need to add it to > dsa_tag_proto_names[] as well as adding the tagger source file. Thus, > two places to keep in sync. And you don't have all the information in > one place, e.g. the tagger module. The name of the tagger as used in > sysfs or device tree is then in the core. Just wanted to point that out. > After all it's up to you as the maintainer to decide ;) True, there are already 2 places you need to keep in sync, you already need to add the tagger id to include/net/dsa.h (twice). The header is shared between taggers, the DSA core and device drivers. A third place would indeed be a bit too much. Actually I came to like your idea with 2 modaliases. I prepared a patch set and I'm in the process of testing it (need to rebuild everything with modules, which I usually skip). If it works, I'll post it as an RFC soon.
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts index 72429b37a8b4..771c50c7f50a 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts @@ -324,14 +324,6 @@ &lpuart1 { status = "okay"; }; -&mscc_felix_port4 { - dsa-tag-protocol = "ocelot-8021q"; -}; - -&mscc_felix_port5 { - dsa-tag-protocol = "ocelot-8021q"; -}; - &usb0 { status = "okay"; };