android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
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