On Thu, Dec 17, 2020 at 2:59 AM Vladimir Oltean <vladimir.olt...@nxp.com> wrote:
> Since the introduction of the switchdev API, port attributes were > transmitted to drivers for offloading using a two-step transactional > model, with a prepare phase that was supposed to catch all errors, and a > commit phase that was supposed to never fail. > > Some classes of failures can never be avoided, like hardware access, or > memory allocation. In the latter case, merely attempting to move the > memory allocation to the preparation phase makes it impossible to avoid > memory leaks, since commit 91cf8eceffc1 ("switchdev: Remove unused > transaction item queue") which has removed the unused mechanism of > passing on the allocated memory between one phase and another. > > It is time we admit that separating the preparation from the commit > phase is something that is best left for the driver to decide, and not > something that should be baked into the API, especially since there are > no switchdev callers that depend on this. > > This patch removes the struct switchdev_trans member from switchdev port > attribute notifier structures, and converts drivers to not look at this > member. > > In part, this patch contains a revert of my previous commit 2e554a7a5d8a > ("net: dsa: propagate switchdev vlan_filtering prepare phase to > drivers"). > > For the most part, the conversion was trivial except for: > - Rocker's world implementation based on Broadcom OF-DPA had an odd > implementation of ofdpa_port_attr_bridge_flags_set. The conversion was > done mechanically, by pasting the implementation twice, then only > keeping the code that would get executed during prepare phase on top, > then only keeping the code that gets executed during the commit phase > on bottom, then simplifying the resulting code until this was obtained. > - DSA's offloading of STP state, bridge flags, VLAN filtering and > multicast router could be converted right away. But the ageing time > could not, so a shim was introduced and this was left for a further > commit. > > Signed-off-by: Vladimir Oltean <vladimir.olt...@nxp.com> For RTL8366RB it seems to do what the commit text says so: Reviewed-by: Linus Walleij <linus.wall...@linaro.org> Yours, Linus Walleij