linux/drivers/staging
Vladimir Oltean bae33f2b5a net: switchdev: remove the transaction structure from port attributes
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 91cf8eceff ("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 2e554a7a5d
("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.oltean@nxp.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de> # hellcreek
Reviewed-by: Linus Walleij <linus.walleij@linaro.org> # RTL8366RB
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-01-11 16:00:57 -08:00
..
android UAPI Changes: 2020-12-18 12:38:28 -08:00
axis-fifo
board
clocking-wizard
comedi staging: comedi: mf6x4: Fix AI end-of-conversion detection 2020-12-09 15:49:13 +01:00
emxx_udc staging/emxx_udc: fix indenting issue on a couple of statements 2020-09-22 09:49:32 +02:00
fbtft
fieldbus staging: fieldbus: use kobj_to_dev() to get device 2020-11-23 17:59:51 +01:00
fsl-dpaa2 net: switchdev: remove the transaction structure from port attributes 2021-01-11 16:00:57 -08:00
fwserial staging: fwserial: Remove repeated word and 2020-09-13 09:20:12 +02:00
gasket staging: gasket: interrupt: fix the missed eventfd_ctx_put() in gasket_interrupt.c 2020-11-13 15:35:14 +01:00
gdm724x staging: gdm724x: Clarify naming of packet_type<->tty index symbols 2020-10-26 06:53:10 +01:00
greybus staging: greybus: Add TODO item about modernizing the pwm code 2020-12-09 15:49:04 +01:00
gs_fpgaboot
hikey9xx staging: mfd: hi6421-spmi-pmic: fix error return code in hi6421_spmi_pmic_probe() 2020-11-23 17:59:51 +01:00
iio staging: iio: adis16240: add blank line before struct definition 2020-10-26 06:53:09 +01:00
kpc2000 staging: kpc2000: kpc_dma: rename show function per convention 2020-10-27 12:23:59 +01:00
ks7010 staging: ks7010: fix missing destroy_workqueue() on error in ks7010_sdio_probe 2020-11-06 11:02:53 +01:00
media ARM: SoC drivers for v5.11 2020-12-16 16:38:41 -08:00
most staging: most: Fix spelling mistake "tranceiver" -> "transceiver" 2020-12-09 19:45:13 +01:00
mt7621-dma staging: mt7621-dma: fix alignment warnings 2020-11-06 11:04:50 +01:00
mt7621-dts staging: mt7621-pinctrl: stop using the deprecated 'pinctrl_add_gpio_range' 2020-12-07 15:10:16 +01:00
mt7621-pci staging: mt7621-pci: remove 'RALINK_PCI_IMBASEBAR0_ADDR' register 2020-11-26 09:12:18 +01:00
netlogic staging: netlogic: clear alignment style issues 2020-08-02 12:47:37 +02:00
nvec Staging: nvec: Removes repeated word typo in comment 2020-10-01 10:55:17 +02:00
octeon staging: octeon: Drop on uncorrectable alignment or FCS error 2020-10-27 13:18:50 +01:00
octeon-usb drivers: staging: octeon-usb: fixed codestyle check warning 2020-09-13 09:21:15 +02:00
olpc_dcon staging: olpc_dcon: Do not call platform_device_unregister() in dcon_probe() 2020-12-09 19:45:13 +01:00
pi433 staging: pi433: break long lines 2020-09-04 15:39:07 +02:00
qlge staging: qlge: remove duplicate word in comment 2020-12-09 15:49:18 +01:00
ralink-gdma staging: ralink-gdma: fix kconfig dependency bug for DMA_RALINK 2020-11-06 11:12:49 +01:00
rtl8188eu staging: rtl8188eu: clean up the useless code 2020-11-23 17:59:52 +01:00
rtl8192e staging: rtl8192e: Braces should be used on all arms of statement 2020-11-13 15:34:07 +01:00
rtl8192u staging: rtl8192u: fix wrong judgement in rtl8192_rx_isr 2020-11-06 11:02:53 +01:00
rtl8712 staging: rtl8712: Fix enqueue_reorder_recvframe() 2020-10-01 10:55:17 +02:00
rtl8723bs staging: rtl8723bs: remove ELEMENT_ID enum 2020-12-08 09:55:52 +01:00
rts5208 staging: rts5208: rtsx_transport.c: Fix lines ending with parentheses 2020-09-13 09:20:31 +02:00
sm750fb Staging: sm750fb: Fix basic coding style issues 2020-08-28 12:19:15 +02:00
unisys staging: unisys: visorhba: remove redundant initialization of variables scsicmd_id and rc 2020-07-23 20:34:34 +02:00
vc04_services staging: bcm2835: fix vchiq_mmal dependencies 2020-12-07 15:07:24 +01:00
vme
vt6655 staging: vt6655: Fix fall-through warnings for Clang 2020-11-23 17:55:23 +01:00
vt6656 staging: vt6656: Fix fall-through warnings for Clang 2020-11-23 17:55:23 +01:00
wfx Linux 5.10-rc5 2020-11-23 08:21:37 +01:00
wimax Staging / IIO driver patches for 5.11-rc1 2020-12-15 14:18:40 -08:00
wlan-ng staging/wlan-ng: Fix line alignment 2020-11-06 10:57:46 +01:00
Kconfig Staging / IIO driver patches for 5.11-rc1 2020-12-15 14:18:40 -08:00
Makefile Staging / IIO driver patches for 5.11-rc1 2020-12-15 14:18:40 -08:00