Vladimir Oltean
2bfb0d43a4
net: mscc: ocelot: allow unregistered IP multicast flooding
...
Flooding of unregistered IP multicast has been broken (both to other
switch ports and to the CPU) since the ocelot driver introduction, and
up until commit 4cf35a2b627a ("net: mscc: ocelot: fix broken IP
multicast flooding"), a bug fix for commit 421741ea5672 ("net: mscc:
ocelot: offload bridge port flags to device") from v5.12.
The driver used to set PGID_MCIPV4 and PGID_MCIPV6 to the empty port
mask (0), which made unregistered IPv4/IPv6 multicast go nowhere, and
without ever modifying that port mask at runtime.
The expectation is that such packets are treated as broadcast, and
flooded according to the forwarding domain (to the CPU if the port is
standalone, or to the CPU and other bridged ports, if under a bridge).
Since the aforementioned commit, the limitation has been lifted by
responding to SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS events emitted by the
bridge. As for host flooding, DSA synthesizes another call to
ocelot_port_bridge_flags() on the NPI port which ensures that the CPU
gets the unregistered multicast traffic it might need, for example for
smcroute to work between standalone ports.
But between v4.18 and v5.12, IP multicast flooding has remained unfixed.
Delete the inexplicable premature optimization of clearing PGID_MCIPV4
and PGID_MCIPV6 as part of the init sequence, and allow unregistered IP
multicast to be flooded freely according to the forwarding domain
established by PGID_SRC, by explicitly programming PGID_MCIPV4 and
PGID_MCIPV6 towards all physical ports plus the CPU port module.
Fixes: a556c76adc ("net: mscc: Add initial Ocelot switch support")
Cc: stable@kernel.org
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-02 16:28:50 +02:00
..
accessibility
acpi
ACPI: property: Release subnode properties with data nodes
2022-06-14 18:11:45 +02:00
amba
android
binder: fix handling of error during copy
2022-01-27 09:19:38 +01:00
ata
ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo()
2022-06-22 14:11:20 +02:00
atm
atm: eni: Add check for dma_map_single
2022-03-23 09:12:07 +01:00
auxdisplay
auxdisplay: ht16k33: Fix frame buffer device blanking
2021-11-17 09:48:45 +01:00
base
regmap-irq: Fix a bug in regmap_irq_enable() for type_in_mask chips
2022-06-29 08:58:47 +02:00
bcma
block
nbd: fix io hung while disconnecting device
2022-06-14 18:12:01 +02:00
bluetooth
Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt
2022-04-15 14:18:16 +02:00
bus
bus: ti-sysc: Fix warnings for unbind for serial
2022-06-14 18:11:54 +02:00
cdrom
char
random: update comment from copy_to_user() -> copy_to_iter()
2022-06-29 08:58:49 +02:00
clk
clk: at91: generated: consider range when calculating best rate
2022-05-25 09:14:36 +02:00
clocksource
clocksource: hyper-v: unexport __init-annotated hv_init_clocksource()
2022-06-22 14:11:21 +02:00
connector
counter
cpufreq
Revert "cpufreq: Fix possible race in cpufreq online error path"
2022-06-14 18:11:36 +02:00
cpuidle
crypto
crypto: marvell/cesa - ECB does not IV
2022-06-14 18:11:40 +02:00
dax
dax: make sure inodes are flushed before destroy cache
2022-04-15 14:18:12 +02:00
dca
devfreq
PM / devfreq: rk3399_dmc: Disable edev on remove()
2022-06-14 18:11:29 +02:00
dio
dma
dmaengine: zynqmp_dma: In struct zynqmp_dma_chan fix desc_size data type
2022-06-14 18:11:56 +02:00
dma-buf
udmabuf: add back sanity check
2022-06-29 08:58:46 +02:00
edac
EDAC/synopsys: Read the error count from the correct register
2022-04-27 13:50:48 +02:00
eisa
extcon
extcon: Modify extcon device to be created after driver data is set
2022-06-14 18:12:00 +02:00
firewire
firewire: core: extend card->lock in fw_core_handle_bus_reset
2022-05-12 12:23:41 +02:00
firmware
firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle
2022-06-14 18:11:54 +02:00
fpga
fsi
gnss
gpio
gpio: winbond: Fix error code in winbond_gpio_get()
2022-06-29 08:58:47 +02:00
gpu
drm: remove drm_fb_helper_modinit
2022-07-02 16:28:49 +02:00
greybus
greybus: svc: fix an error handling bug in gb_svc_hello()
2022-04-15 14:17:58 +02:00
hid
HID: elan: Fix potential double free in elan_input_configured
2022-06-14 18:11:33 +02:00
hsi
HSI: core: Fix return freed object in hsi_new_client
2022-01-27 09:19:41 +01:00
hv
random: remove unused irq_flags argument from add_interrupt_randomness()
2022-06-22 14:11:06 +02:00
hwmon
Revert "hwmon: Make chip parameter for with_info API mandatory"
2022-06-25 12:44:36 +02:00
hwspinlock
hwtracing
coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier
2022-06-14 18:11:52 +02:00
i2c
i2c: designware: Use standard optional ref clock implementation
2022-06-22 14:11:22 +02:00
i3c
ide
idle
iio
iio: adc: axp288: Override TS pin bias current for some models
2022-06-29 08:58:48 +02:00
infiniband
RDMA/rxe: Generate a completion for unsupported/invalid opcode
2022-06-14 18:11:50 +02:00
input
Input: bcm5974 - set missing URB_NO_TRANSFER_DMA_MAP urb flag
2022-06-14 18:12:03 +02:00
interconnect
iommu
iommu/msm: Fix an incorrect NULL check on list iterator
2022-06-14 18:11:48 +02:00
ipack
irqchip
irqchip/gic-v3: Fix refcount leak in gic_populate_ppi_partitions
2022-06-22 14:11:22 +02:00
isdn
mISDN: change function names to avoid conflicts
2022-01-11 15:23:33 +01:00
leds
lightnvm
lightnvm: disable the subsystem
2022-05-09 09:03:20 +02:00
macintosh
macintosh: via-pmu and via-cuda need RTC_LIB
2022-06-14 18:11:42 +02:00
mailbox
mailbox: forward the hrtimer if not queued and under a lock
2022-06-14 18:11:42 +02:00
mcb
md
dm mirror log: clear log bits up to BITS_PER_LONG boundary
2022-06-29 08:58:45 +02:00
media
media: coda: Add more H264 levels for CODA960
2022-06-14 18:11:47 +02:00
memory
memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe
2022-04-20 09:19:34 +02:00
memstick
message
mfd
mfd: davinci_voicecodec: Fix possible null-ptr-deref davinci_vc_probe()
2022-06-14 18:11:42 +02:00
misc
misc: atmel-ssc: Fix IRQ check in ssc_probe
2022-06-22 14:11:22 +02:00
mmc
mmc: sdhci-pci-o2micro: Fix card detect by dealing with debouncing
2022-06-29 08:58:44 +02:00
mtd
mtd: rawnand: gpmi: Fix setting busy timeout setting
2022-06-29 08:58:45 +02:00
mux
net
net: mscc: ocelot: allow unregistered IP multicast flooding
2022-07-02 16:28:50 +02:00
nfc
nfc: nfcmrvl: Fix memory leak in nfcmrvl_play_deferred
2022-06-22 14:11:21 +02:00
ntb
nubus
nvdimm
nvdimm: Allow overwrite in the presence of disabled dimms
2022-06-14 18:11:40 +02:00
nvme
nvme-pci: fix a NULL pointer dereference in nvme_alloc_admin_tags
2022-06-14 18:11:28 +02:00
nvmem
of
of: overlay: do not break notify on NOTIFY_{OK|STOP}
2022-06-14 18:11:34 +02:00
opp
opp: Fix return in _opp_add_static_v2()
2021-11-17 09:48:44 +01:00
oprofile
parisc
parisc: Fix CPU affinity for Lasi, WAX and Dino chips
2022-04-15 14:18:36 +02:00
parport
pci
PCI: qcom: Fix unbalanced PHY init on probe errors
2022-06-14 18:11:46 +02:00
pcmcia
pcmcia: db1xxx_ss: restrict to MIPS_DB1XXX boards
2022-06-14 18:11:50 +02:00
perf
arm_pmu: Validate single/group leader events
2022-04-27 13:50:50 +02:00
phy
phy: qcom-qmp: fix pipe-clock imbalance on power-on failure
2022-06-14 18:11:52 +02:00
pinctrl
pinctrl: mvebu: Fix irq_of_parse_and_map() return value
2022-06-14 18:11:41 +02:00
platform
platform/chrome: cros_ec_debugfs: detach log reader wq from devm
2022-05-25 09:14:33 +02:00
pnp
power
power: supply: axp288-charger: Set Vhold to 4.4V
2022-04-15 14:18:33 +02:00
powercap
pps
ps3
ptp
ptp: replace snprintf with sysfs_emit
2022-04-15 14:18:32 +02:00
pwm
pwm: lp3943: Fix duty calculation in case period was clamped
2022-06-14 18:11:51 +02:00
rapidio
ras
regulator
regulator: pfuze100: Fix refcount leak in pfuze_parse_regulators_dt
2022-06-14 18:11:37 +02:00
remoteproc
remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region
2022-04-15 14:18:19 +02:00
reset
reset: tegra-bpmp: Restore Handle errors in BPMP response
2022-04-27 13:50:47 +02:00
rpmsg
rpmsg: qcom_smd: Fix returning 0 if irq_of_parse_and_map() fails
2022-06-14 18:11:52 +02:00
rtc
rtc: mt6397: check return value after calling platform_get_resource()
2022-06-14 18:11:53 +02:00
s390
s390/lcs: fix variable dereferenced before check
2022-05-18 09:47:25 +02:00
sbus
scsi
scsi: pmcraid: Fix missing resource cleanup in error case
2022-06-22 14:11:20 +02:00
sfi
sh
maple: fix wrong return value of maple_bus_init().
2021-11-26 10:47:17 +01:00
siox
slimbus
slimbus: qcom: Fix IRQ check in qcom_slim_probe
2022-05-18 09:47:27 +02:00
soc
soc: bcm: brcmstb: pm: pm-arm: Fix refcount leak in brcmstb_pm_probe
2022-06-29 08:58:49 +02:00
soundwire
spi
spi: img-spfi: Fix pm_runtime_get_sync() error checking
2022-06-14 18:11:33 +02:00
spmi
ssb
staging
comedi: vmk80xx: fix expression for tx buffer size
2022-06-22 14:11:23 +02:00
target
scsi: target: tcmu: Fix possible page UAF
2022-04-20 09:19:36 +02:00
tc
tee
optee: use driver internal tee_context for some rpc
2022-03-02 11:41:04 +01:00
thermal
thermal/drivers/broadcom: Fix potential NULL dereference in sr_thermal_probe
2022-06-14 18:11:38 +02:00
thunderbolt
tty
vt: drop old FONT ioctls
2022-06-29 08:58:44 +02:00
uio
usb
usb: chipidea: udc: check request status before setting device address
2022-06-29 08:58:47 +02:00
vfio
vhost
vringh: Fix loop descriptors check in the indirect cases
2022-06-14 18:12:02 +02:00
video
video: fbdev: pxa3xx-gcu: release the resources correctly in pxa3xx_gcu_probe/remove()
2022-06-14 18:11:57 +02:00
virt
virtio
virtio-pci: Remove wrong address verification in vp_del_vqs()
2022-06-22 14:11:24 +02:00
visorbus
vlynq
vme
w1
w1: w1_therm: fixes w1_seq for ds28ea00 sensors
2022-04-15 14:18:35 +02:00
watchdog
watchdog: wdat_wdt: Stop watchdog when rebooting the system
2022-06-14 18:12:00 +02:00
xen
x86/xen: Remove undefined behavior in setup_features()
2022-06-29 08:58:46 +02:00
zorro
Kconfig
Makefile