The following commit has been merged in the master branch: commit 59372af69d4d71e6487614f1b35712cf241eadb4 Merge: 1a280c54fd982379a35f1a7b6d93d1b9bf148ad9 6ecc4fd6c2f43862c5e3b280cf419f0131e45c97 Author: Jakub Kicinski kuba@kernel.org Date: Sat Jan 18 17:57:31 2025 -0800
Merge tag 'batadv-next-pullrequest-20250117' of git://git.open-mesh.org/linux-merge
Simon Wunderlich says:
==================== This cleanup patchset includes the following patches:
- bump version strings, by Simon Wunderlich
- Reorder includes for distributed-arp-table.c, by Sven Eckelmann
- Fix translation table change handling, by Remi Pommarel (2 patches)
- Map VID 0 to untagged TT VLAN, by Sven Eckelmann
- Update MAINTAINERS/mailmap e-mail addresses, by the respective authors (4 patches)
- netlink: reduce duplicate code by returning interfaces, by Linus Lüssing
* tag 'batadv-next-pullrequest-20250117' of git://git.open-mesh.org/linux-merge: batman-adv: netlink: reduce duplicate code by returning interfaces MAINTAINERS: mailmap: add entries for Antonio Quartulli mailmap: add entries for Sven Eckelmann mailmap: add entries for Simon Wunderlich MAINTAINERS: update email address of Marek Linder batman-adv: Map VID 0 to untagged TT VLAN batman-adv: Don't keep redundant TT change events batman-adv: Remove atomic usage for tt.local_changes batman-adv: Reorder includes for distributed-arp-table.c batman-adv: Start new development cycle ====================
Link: https://patch.msgid.link/20250117123910.219278-1-sw@simonwunderlich.de Signed-off-by: Jakub Kicinski kuba@kernel.org
diff --combined .mailmap index ae1a28e847cb3,d55b94d1fe0b2..035c8b09595dc --- a/.mailmap +++ b/.mailmap @@@ -83,6 -83,13 +83,13 @@@ Anirudh Ghayal <quic_aghayal@quicinc.co Antoine Tenart atenart@kernel.org antoine.tenart@bootlin.com Antoine Tenart atenart@kernel.org antoine.tenart@free-electrons.com Antonio Ospite ao2@ao2.it ao2@amarulasolutions.com + Antonio Quartulli antonio@mandelbit.com antonio@meshcoding.com + Antonio Quartulli antonio@mandelbit.com antonio@open-mesh.com + Antonio Quartulli antonio@mandelbit.com antonio.quartulli@open-mesh.com + Antonio Quartulli antonio@mandelbit.com ordex@autistici.org + Antonio Quartulli antonio@mandelbit.com ordex@ritirata.org + Antonio Quartulli antonio@mandelbit.com antonio@openvpn.net + Antonio Quartulli antonio@mandelbit.com a@unstable.cc Anup Patel anup@brainfault.org anup.patel@wdc.com Archit Taneja archit@ti.com Ard Biesheuvel ardb@kernel.org ard.biesheuvel@linaro.org @@@ -121,8 -128,6 +128,8 @@@ Ben Widawsky bwidawsk@kernel.org <ben Benjamin Poirier benjamin.poirier@gmail.com bpoirier@suse.de Benjamin Tissoires bentiss@kernel.org benjamin.tissoires@gmail.com Benjamin Tissoires bentiss@kernel.org benjamin.tissoires@redhat.com +Bingwu Zhang xtex@aosc.io xtexchooser@duck.com +Bingwu Zhang xtex@aosc.io xtex@xtexx.eu.org Bjorn Andersson andersson@kernel.org bjorn@kryo.se Bjorn Andersson andersson@kernel.org bjorn.andersson@linaro.org Bjorn Andersson andersson@kernel.org bjorn.andersson@sonymobile.com @@@ -429,6 -434,8 +436,8 @@@ Marcin Nowakowski <marcin.nowakowski@mi Marc Zyngier maz@kernel.org marc.zyngier@arm.com Marek Behún kabel@kernel.org marek.behun@nic.cz Marek Behún kabel@kernel.org Marek Behun marek.behun@nic.cz + Marek Lindner marek.lindner@mailbox.org lindner_marek@yahoo.de + Marek Lindner marek.lindner@mailbox.org mareklindner@neomailbox.ch Mark Brown broonie@sirena.org.uk Mark Starovoytov mstarovo@pm.me mstarovoitov@marvell.com Markus Schneider-Pargmann msp@baylibre.com mpa@pengutronix.de @@@ -437,7 -444,7 +446,7 @@@ Martin Kepplinger martink@posteo.de < Martin Kepplinger martink@posteo.de martin.kepplinger@puri.sm Martin Kepplinger martink@posteo.de martin.kepplinger@theobroma-systems.com Martyna Szapar-Mudlaw martyna.szapar-mudlaw@linux.intel.com martyna.szapar-mudlaw@intel.com -Mathieu Othacehe m.othacehe@gmail.com othacehe@gnu.org +Mathieu Othacehe othacehe@gnu.org m.othacehe@gmail.com Mat Martineau martineau@kernel.org mathew.j.martineau@linux.intel.com Mat Martineau martineau@kernel.org mathewm@codeaurora.org Matthew Wilcox willy@infradead.org matthew.r.wilcox@intel.com @@@ -531,8 -538,6 +540,8 @@@ Oleksij Rempel <linux@rempel-privat.de Oleksij Rempel linux@rempel-privat.de fixed-term.Oleksij.Rempel@de.bosch.com Oleksij Rempel o.rempel@pengutronix.de Oleksij Rempel o.rempel@pengutronix.de ore@pengutronix.de +Oliver Hartkopp socketcan@hartkopp.net oliver.hartkopp@volkswagen.de +Oliver Hartkopp socketcan@hartkopp.net oliver@hartkopp.net Oliver Upton oliver.upton@linux.dev oupton@google.com Ondřej Jirman megi@xff.cz megous@megous.com Oza Pawandeep quic_poza@quicinc.com poza@codeaurora.org @@@ -644,6 -649,11 +653,11 @@@ Simona Vetter simona.vetter@ffwll.ch Simon Horman horms@kernel.org simon.horman@corigine.com Simon Horman horms@kernel.org simon.horman@netronome.com Simon Kelley simon@thekelleys.org.uk + Simon Wunderlich sw@simonwunderlich.de simon.wunderlich@open-mesh.com + Simon Wunderlich sw@simonwunderlich.de simon.wunderlich@s2003.tu-chemnitz.de + Simon Wunderlich sw@simonwunderlich.de simon.wunderlich@saxnet.de + Simon Wunderlich sw@simonwunderlich.de simon@open-mesh.com + Simon Wunderlich sw@simonwunderlich.de siwu@hrz.tu-chemnitz.de Sricharan Ramabadhran quic_srichara@quicinc.com sricharan@codeaurora.org Srinivas Ramana quic_sramana@quicinc.com sramana@codeaurora.org Sriram R quic_srirrama@quicinc.com srirrama@codeaurora.org @@@ -664,6 -674,11 +678,11 @@@ Sudarshan Rajagopalan <quic_sudaraja@qu Sudeep Holla sudeep.holla@arm.com Sudeep KarkadaNagesha sudeep.karkadanagesha@arm.com Sumit Semwal sumit.semwal@ti.com Surabhi Vishnoi quic_svishnoi@quicinc.com svishnoi@codeaurora.org + Sven Eckelmann sven@narfation.org seckelmann@datto.com + Sven Eckelmann sven@narfation.org sven.eckelmann@gmx.de + Sven Eckelmann sven@narfation.org sven.eckelmann@open-mesh.com + Sven Eckelmann sven@narfation.org sven.eckelmann@openmesh.com + Sven Eckelmann sven@narfation.org sven@open-mesh.com Takashi YOSHII takashi.yoshii.zj@renesas.com Tamizh Chelvam Raja quic_tamizhr@quicinc.com tamizhr@codeaurora.org Taniya Das quic_tdas@quicinc.com tdas@codeaurora.org @@@ -739,7 -754,6 +758,7 @@@ Wolfram Sang wsa@kernel.org <w.sang@p Wolfram Sang wsa@kernel.org wsa@the-dreams.de Yakir Yang kuankuan.y@gmail.com ykk@rock-chips.com Yanteng Si si.yanteng@linux.dev siyanteng@loongson.cn +Ying Huang huang.ying.caritas@gmail.com ying.huang@intel.com Yusuke Goda goda.yusuke@renesas.com Zack Rusin zack.rusin@broadcom.com zackr@vmware.com Zhu Yanjun zyjzyj2000@gmail.com yanjunz@nvidia.com diff --combined MAINTAINERS index 7b8410b2792a4,07206a6a1be59..82b227c3939a4 --- a/MAINTAINERS +++ b/MAINTAINERS @@@ -949,9 -949,10 +949,9 @@@ AMAZON ETHERNET DRIVER M: Shay Agroskin shayagr@amazon.com M: Arthur Kiyanovski akiyano@amazon.com R: David Arinzon darinzon@amazon.com -R: Noam Dagan ndagan@amazon.com R: Saeed Bishara saeedb@amazon.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: Documentation/networking/device_drivers/ethernet/amazon/ena.rst F: drivers/net/ethernet/amazon/
@@@ -1124,7 -1125,7 +1124,7 @@@ AMD PDS CORE DRIVE M: Shannon Nelson shannon.nelson@amd.com M: Brett Creeley brett.creeley@amd.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: Documentation/networking/device_drivers/ethernet/amd/pds_core.rst F: drivers/net/ethernet/amd/pds_core/ F: include/linux/pds/ @@@ -1196,7 -1197,7 +1196,7 @@@ F: drivers/spi/spi-amd. AMD XGBE DRIVER M: "Shyam Sundar S K" Shyam-sundar.S-k@amd.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi F: drivers/net/ethernet/amd/xgbe/
@@@ -1702,14 -1703,14 +1702,14 @@@ F: drivers/edac/xgene_edac. APPLIED MICRO (APM) X-GENE SOC ETHERNET (V2) DRIVER M: Iyappan Subramanian iyappan@os.amperecomputing.com M: Keyur Chudgar keyur@os.amperecomputing.com -S: Supported +S: Maintained F: drivers/net/ethernet/apm/xgene-v2/
APPLIED MICRO (APM) X-GENE SOC ETHERNET DRIVER M: Iyappan Subramanian iyappan@os.amperecomputing.com M: Keyur Chudgar keyur@os.amperecomputing.com M: Quan Nguyen quan@os.amperecomputing.com -S: Supported +S: Maintained F: Documentation/devicetree/bindings/net/apm-xgene-enet.txt F: Documentation/devicetree/bindings/net/apm-xgene-mdio.txt F: drivers/net/ethernet/apm/xgene/ @@@ -1747,7 -1748,7 +1747,7 @@@ F: drivers/hwmon/aquacomputer_d5next. AQUANTIA ETHERNET DRIVER (atlantic) M: Igor Russkikh irusskikh@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: https://www.marvell.com/ Q: https://patchwork.kernel.org/project/netdevbpf/list/ F: Documentation/networking/device_drivers/ethernet/aquantia/atlantic.rst @@@ -1756,7 -1757,7 +1756,7 @@@ F: drivers/net/ethernet/aquantia/atlant AQUANTIA ETHERNET DRIVER PTP SUBSYSTEM M: Egor Pomozov epomozov@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: http://www.aquantia.com F: drivers/net/ethernet/aquantia/atlantic/aq_ptp*
@@@ -1796,6 -1797,7 +1796,6 @@@ F: include/uapi/linux/if_arcnet.
ARM AND ARM64 SoC SUB-ARCHITECTURES (COMMON PARTS) M: Arnd Bergmann arnd@arndb.de -M: Olof Johansson olof@lixom.net L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: soc@lists.linux.dev S: Maintained @@@ -2291,7 -2293,7 +2291,7 @@@ F: arch/arm/mach-highbank ARM/CAVIUM THUNDER NETWORK DRIVER M: Sunil Goutham sgoutham@marvell.com L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) -S: Supported +S: Maintained F: drivers/net/ethernet/cavium/thunder/
ARM/CIRRUS LOGIC BK3 MACHINE SUPPORT @@@ -2689,6 -2691,7 +2689,6 @@@ N: at9 N: atmel
ARM/Microchip Sparx5 SoC support -M: Lars Povlsen lars.povlsen@microchip.com M: Steen Hegelund Steen.Hegelund@microchip.com M: Daniel Machon daniel.machon@microchip.com M: UNGLinuxDriver@microchip.com @@@ -2833,13 -2836,6 +2833,13 @@@ S: Maintaine F: arch/arm64/boot/dts/freescale/s32g*.dts* F: drivers/pinctrl/nxp/
+ARM/NXP S32G/S32R DWMAC ETHERNET DRIVER +M: Jan Petrous jan.petrous@oss.nxp.com +L: NXP S32 Linux Team s32@nxp.com +S: Maintained +F: Documentation/devicetree/bindings/net/nxp,s32-dwmac.yaml +F: drivers/net/ethernet/stmicro/stmmac/dwmac-s32.c + ARM/Orion SoC/Technologic Systems TS-78xx platform support M: Alexander Clouter alex@digriz.org.uk L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) @@@ -3380,8 -3376,6 +3380,8 @@@ S: Maintaine T: git git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git F: Documentation/arch/arm64/ F: arch/arm64/ +F: drivers/virt/coco/arm-cca-guest/ +F: drivers/virt/coco/pkvm-guest/ F: tools/testing/selftests/arm64/ X: arch/arm64/boot/dts/
@@@ -3612,7 -3606,6 +3612,7 @@@ F: drivers/phy/qualcomm/phy-ath79-usb.
ATHEROS ATH GENERIC UTILITIES M: Kalle Valo kvalo@kernel.org +M: Jeff Johnson jjohnson@kernel.org L: linux-wireless@vger.kernel.org S: Supported F: drivers/net/wireless/ath/* @@@ -3666,7 -3659,7 +3666,7 @@@ F: include/uapi/linux/sonet. ATMEL MACB ETHERNET DRIVER M: Nicolas Ferre nicolas.ferre@microchip.com M: Claudiu Beznea claudiu.beznea@tuxon.dev -S: Supported +S: Maintained F: drivers/net/ethernet/cadence/
ATMEL MAXTOUCH DRIVER @@@ -3874,9 -3867,9 +3874,9 @@@ S: Maintaine F: drivers/platform/x86/barco-p50-gpio.c
BATMAN ADVANCED - M: Marek Lindner mareklindner@neomailbox.ch + M: Marek Lindner marek.lindner@mailbox.org M: Simon Wunderlich sw@simonwunderlich.de - M: Antonio Quartulli a@unstable.cc + M: Antonio Quartulli antonio@mandelbit.com M: Sven Eckelmann sven@narfation.org L: b.a.t.m.a.n@lists.open-mesh.org (moderated for non-subscribers) S: Maintained @@@ -3898,7 -3891,7 +3898,7 @@@ W: http://www.baycom.org/~tom/ham/ham.h F: drivers/net/hamradio/baycom*
BCACHE (BLOCK LAYER CACHE) -M: Coly Li colyli@suse.de +M: Coly Li colyli@kernel.org M: Kent Overstreet kent.overstreet@linux.dev L: linux-bcache@vger.kernel.org S: Maintained @@@ -4063,6 -4056,7 +4063,6 @@@ F: net/bluetooth
BONDING DRIVER M: Jay Vosburgh jv@jvosburgh.net -M: Andy Gospodarek andy@greyhouse.net L: netdev@vger.kernel.org S: Maintained F: Documentation/networking/bonding.rst @@@ -4135,6 -4129,7 +4135,6 @@@ S: Odd Fixe F: drivers/net/ethernet/netronome/nfp/bpf/
BPF JIT for POWERPC (32-BIT AND 64-BIT) -M: Michael Ellerman mpe@ellerman.id.au M: Hari Bathini hbathini@linux.ibm.com M: Christophe Leroy christophe.leroy@csgroup.eu R: Naveen N Rao naveen@kernel.org @@@ -4394,7 -4389,7 +4394,7 @@@ F: drivers/net/ethernet/broadcom/asp2 BROADCOM B44 10/100 ETHERNET DRIVER M: Michael Chan michael.chan@broadcom.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/broadcom/b44.*
BROADCOM B53/SF2 ETHERNET SWITCH DRIVER @@@ -4578,7 -4573,7 +4578,7 @@@ BROADCOM BNX2 GIGABIT ETHERNET DRIVE M: Rasesh Mody rmody@marvell.com M: GR-Linux-NIC-Dev@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/broadcom/bnx2.* F: drivers/net/ethernet/broadcom/bnx2_*
@@@ -4602,14 -4597,13 +4602,14 @@@ BROADCOM BNX2X 10 GIGABIT ETHERNET DRIV M: Sudarsana Kalluru skalluru@marvell.com M: Manish Chopra manishc@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/broadcom/bnx2x/
BROADCOM BNXT_EN 50 GIGABIT ETHERNET DRIVER M: Michael Chan michael.chan@broadcom.com +M: Pavan Chebbi pavan.chebbi@broadcom.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/firmware/broadcom/tee_bnxt_fw.c F: drivers/net/ethernet/broadcom/bnxt/ F: include/linux/firmware/broadcom/tee_bnxt_fw.h @@@ -4705,7 -4699,7 +4705,7 @@@ M: Doug Berger <opendmb@gmail.com M: Florian Fainelli florian.fainelli@broadcom.com R: Broadcom internal kernel review list bcm-kernel-feedback-list@broadcom.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: Documentation/devicetree/bindings/net/brcm,bcmgenet.yaml F: Documentation/devicetree/bindings/net/brcm,unimac-mdio.yaml F: drivers/net/ethernet/broadcom/genet/ @@@ -4857,7 -4851,7 +4857,7 @@@ BROADCOM SYSTEMPORT ETHERNET DRIVE M: Florian Fainelli florian.fainelli@broadcom.com R: Broadcom internal kernel review list bcm-kernel-feedback-list@broadcom.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: Documentation/devicetree/bindings/net/brcm,systemport.yaml F: drivers/net/ethernet/broadcom/bcmsysport.* F: drivers/net/ethernet/broadcom/unimac.h @@@ -4866,7 -4860,7 +4866,7 @@@ BROADCOM TG3 GIGABIT ETHERNET DRIVE M: Pavan Chebbi pavan.chebbi@broadcom.com M: Michael Chan mchan@broadcom.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/broadcom/tg3.*
BROADCOM VK DRIVER @@@ -4888,7 -4882,7 +4888,7 @@@ M: Rasesh Mody <rmody@marvell.com M: Sudarsana Kalluru skalluru@marvell.com M: GR-Linux-NIC-Dev@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/brocade/bna/
BSG (block layer generic sg v4 driver) @@@ -5114,7 -5108,6 +5114,7 @@@ F: include/uapi/linux/can/gw. F: include/uapi/linux/can/isotp.h F: include/uapi/linux/can/raw.h F: net/can/ +F: net/sched/em_canid.c
CAN-J1939 NETWORK LAYER M: Robin van der Gracht robin@protonic.nl @@@ -5474,7 -5467,6 +5474,7 @@@ L: linux-sound@vger.kernel.or L: patches@opensource.cirrus.com S: Maintained F: Documentation/devicetree/bindings/sound/cirrus,cs* +F: Documentation/sound/codecs/cs* F: drivers/mfd/cs42l43* F: drivers/pinctrl/cirrus/pinctrl-cs42l43* F: drivers/spi/spi-cs42l43* @@@ -5578,7 -5570,7 +5578,7 @@@ F: drivers/scsi/snic CISCO VIC ETHERNET NIC DRIVER M: Christian Benvenuti benve@cisco.com M: Satish Kharat satishkh@cisco.com -S: Supported +S: Maintained F: drivers/net/ethernet/cisco/enic/
CISCO VIC LOW LATENCY NIC DRIVER @@@ -6176,7 -6168,7 +6176,7 @@@ F: drivers/media/dvb-frontends/cxd2820r CXGB3 ETHERNET DRIVER (CXGB3) M: Potnuri Bharat Teja bharat@chelsio.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: http://www.chelsio.com F: drivers/net/ethernet/chelsio/cxgb3/
@@@ -6197,14 -6189,14 +6197,14 @@@ F: drivers/crypto/chelsi CXGB4 ETHERNET DRIVER (CXGB4) M: Potnuri Bharat Teja bharat@chelsio.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: http://www.chelsio.com F: drivers/net/ethernet/chelsio/cxgb4/
CXGB4 INLINE CRYPTO DRIVER M: Ayush Sawal ayush.sawal@chelsio.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: http://www.chelsio.com F: drivers/net/ethernet/chelsio/inline_crypto/
@@@ -6226,7 -6218,7 +6226,7 @@@ F: include/uapi/rdma/cxgb4-abi. CXGB4VF ETHERNET DRIVER (CXGB4VF) M: Potnuri Bharat Teja bharat@chelsio.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: http://www.chelsio.com F: drivers/net/ethernet/chelsio/cxgb4vf/
@@@ -7353,7 -7345,7 +7353,7 @@@ F: drivers/gpu/drm/panel/panel-novatek- DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS M: Karol Herbst kherbst@redhat.com M: Lyude Paul lyude@redhat.com -M: Danilo Krummrich dakr@redhat.com +M: Danilo Krummrich dakr@kernel.org L: dri-devel@lists.freedesktop.org L: nouveau@lists.freedesktop.org S: Supported @@@ -8402,7 -8394,7 +8402,7 @@@ M: Ajit Khaparde <ajit.khaparde@broadco M: Sriharsha Basavapatna sriharsha.basavapatna@broadcom.com M: Somnath Kotur somnath.kotur@broadcom.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: http://www.emulex.com F: drivers/net/ethernet/emulex/benet/
@@@ -8459,7 -8451,7 +8459,7 @@@ F: include/video/s1d13xxxfb. EROFS FILE SYSTEM M: Gao Xiang xiang@kernel.org M: Chao Yu chao@kernel.org -R: Yue Hu huyue2@coolpad.com +R: Yue Hu zbestahu@gmail.com R: Jeffle Xu jefflexu@linux.alibaba.com R: Sandeep Dhavale dhavale@google.com L: linux-erofs@lists.ozlabs.org @@@ -8930,7 -8922,7 +8930,7 @@@ F: include/linux/arm_ffa. FIRMWARE LOADER (request_firmware) M: Luis Chamberlain mcgrof@kernel.org M: Russ Weight russ.weight@linux.dev -M: Danilo Krummrich dakr@redhat.com +M: Danilo Krummrich dakr@kernel.org L: linux-kernel@vger.kernel.org S: Maintained F: Documentation/firmware_class/ @@@ -9441,7 -9433,7 +9441,7 @@@ F: samples/ftrac FUNGIBLE ETHERNET DRIVERS M: Dimitris Michailidis dmichail@fungible.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/fungible/
FUSE: FILESYSTEM IN USERSPACE @@@ -9746,7 -9738,7 +9746,7 @@@ M: Jeroen de Borst <jeroendb@google.com M: Praveen Kaligineedi pkaligineedi@google.com R: Shailend Chand shailend@google.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: Documentation/networking/device_drivers/ethernet/google/gve.rst F: drivers/net/ethernet/google
@@@ -10286,6 -10278,7 +10286,6 @@@ F: drivers/input/touchscreen/himax_hx83
HIPPI M: Jes Sorensen jes@trained-monkey.org -L: linux-hippi@sunsite.dk S: Maintained F: drivers/net/hippi/ F: include/linux/hippidevice.h @@@ -10967,7 -10960,7 +10967,7 @@@ M: Rick Lindsley <ricklind@linux.ibm.co R: Nick Child nnac123@linux.ibm.com R: Thomas Falcon tlfalcon@linux.ibm.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/ibm/ibmvnic.*
IBM Power VFIO Support @@@ -10978,7 -10971,7 +10978,7 @@@ F: drivers/vfio/vfio_iommu_spapr_tce. IBM Power Virtual Ethernet Device Driver M: Nick Child nnac123@linux.ibm.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/ibm/ibmveth.*
IBM Power Virtual FC Device Drivers @@@ -11511,7 -11504,7 +11511,7 @@@ INTEL ETHERNET DRIVER M: Tony Nguyen anthony.l.nguyen@intel.com M: Przemek Kitszel przemyslaw.kitszel@intel.com L: intel-wired-lan@lists.osuosl.org (moderated for non-subscribers) -S: Supported +S: Maintained W: https://www.intel.com/content/www/us/en/support.html Q: https://patchwork.ozlabs.org/project/intel-wired-lan/list/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue.git @@@ -12637,7 -12630,7 +12637,7 @@@ F: arch/mips/include/uapi/asm/kvm F: arch/mips/kvm/
KERNEL VIRTUAL MACHINE FOR POWERPC (KVM/powerpc) -M: Michael Ellerman mpe@ellerman.id.au +M: Madhavan Srinivasan maddy@linux.ibm.com R: Nicholas Piggin npiggin@gmail.com L: linuxppc-dev@lists.ozlabs.org L: kvm@vger.kernel.org @@@ -13119,7 -13112,7 +13119,7 @@@ LIBETH COMMON ETHERNET LIBRAR M: Alexander Lobakin aleksander.lobakin@intel.com L: netdev@vger.kernel.org L: intel-wired-lan@lists.osuosl.org (moderated for non-subscribers) -S: Supported +S: Maintained T: git https://github.com/alobakin/linux.git F: drivers/net/ethernet/intel/libeth/ F: include/net/libeth/ @@@ -13129,7 -13122,7 +13129,7 @@@ LIBIE COMMON INTEL ETHERNET LIBRAR M: Alexander Lobakin aleksander.lobakin@intel.com L: intel-wired-lan@lists.osuosl.org (moderated for non-subscribers) L: netdev@vger.kernel.org -S: Supported +S: Maintained T: git https://github.com/alobakin/linux.git F: drivers/net/ethernet/intel/libie/ F: include/linux/net/intel/libie/ @@@ -13216,11 -13209,11 +13216,11 @@@ X: drivers/macintosh/adb-iop. X: drivers/macintosh/via-macii.c
LINUX FOR POWERPC (32-BIT AND 64-BIT) +M: Madhavan Srinivasan maddy@linux.ibm.com M: Michael Ellerman mpe@ellerman.id.au R: Nicholas Piggin npiggin@gmail.com R: Christophe Leroy christophe.leroy@csgroup.eu R: Naveen N Rao naveen@kernel.org -M: Madhavan Srinivasan maddy@linux.ibm.com L: linuxppc-dev@lists.ozlabs.org S: Supported W: https://github.com/linuxppc/wiki/wiki @@@ -13932,7 -13925,7 +13932,7 @@@ MARVELL OCTEON ENDPOINT DRIVE M: Veerasenareddy Burru vburru@marvell.com M: Sathesh Edara sedara@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/marvell/octeon_ep
MARVELL OCTEON ENDPOINT VF DRIVER @@@ -13941,7 -13934,7 +13941,7 @@@ M: Sathesh Edara <sedara@marvell.com M: Shinas Rasheed srasheed@marvell.com M: Satananda Burla sburla@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/marvell/octeon_ep_vf
MARVELL OCTEONTX2 PHYSICAL FUNCTION DRIVER @@@ -13949,9 -13942,8 +13949,9 @@@ M: Sunil Goutham <sgoutham@marvell.com M: Geetha sowjanya gakula@marvell.com M: Subbaraya Sundeep sbhatta@marvell.com M: hariprasad hkelam@marvell.com +M: Bharat Bhushan bbhushan2@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/marvell/octeontx2/nic/ F: include/linux/soc/marvell/octeontx2/
@@@ -13963,7 -13955,7 +13963,7 @@@ M: Jerin Jacob <jerinj@marvell.com M: hariprasad hkelam@marvell.com M: Subbaraya Sundeep sbhatta@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: Documentation/networking/device_drivers/ethernet/marvell/octeontx2.rst F: drivers/net/ethernet/marvell/octeontx2/af/
@@@ -14572,6 -14564,7 +14572,6 @@@ F: drivers/dma/mediatek MEDIATEK ETHERNET DRIVER M: Felix Fietkau nbd@nbd.name M: Sean Wang sean.wang@mediatek.com -M: Mark Lee Mark-MC.Lee@mediatek.com M: Lorenzo Bianconi lorenzo@kernel.org L: netdev@vger.kernel.org S: Maintained @@@ -14761,7 -14754,7 +14761,7 @@@ F: drivers/memory/mtk-smi. F: include/soc/mediatek/smi.h
MEDIATEK SWITCH DRIVER -M: Arınç ÜNAL arinc.unal@arinc9.com +M: Chester A. Unal chester.a.unal@arinc9.com M: Daniel Golle daniel@makrotopia.org M: DENG Qingfang dqfext@gmail.com M: Sean Wang sean.wang@mediatek.com @@@ -14851,7 -14844,7 +14851,7 @@@ F: drivers/i2c/busses/i2c-mlxbf. MELLANOX ETHERNET DRIVER (mlx4_en) M: Tariq Toukan tariqt@nvidia.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: https://www.nvidia.com/networking/ Q: https://patchwork.kernel.org/project/netdevbpf/list/ F: drivers/net/ethernet/mellanox/mlx4/en_* @@@ -14860,7 -14853,7 +14860,7 @@@ MELLANOX ETHERNET DRIVER (mlx5e M: Saeed Mahameed saeedm@nvidia.com M: Tariq Toukan tariqt@nvidia.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: https://www.nvidia.com/networking/ Q: https://patchwork.kernel.org/project/netdevbpf/list/ F: drivers/net/ethernet/mellanox/mlx5/core/en_* @@@ -14868,7 -14861,7 +14868,7 @@@ MELLANOX ETHERNET INNOVA DRIVERS R: Boris Pismenny borisp@nvidia.com L: netdev@vger.kernel.org -S: Supported +S: Maintained W: https://www.nvidia.com/networking/ Q: https://patchwork.kernel.org/project/netdevbpf/list/ F: drivers/net/ethernet/mellanox/mlx5/core/en_accel/* @@@ -14907,7 -14900,7 +14907,7 @@@ MELLANOX MLX4 core VPI drive M: Tariq Toukan tariqt@nvidia.com L: netdev@vger.kernel.org L: linux-rdma@vger.kernel.org -S: Supported +S: Maintained W: https://www.nvidia.com/networking/ Q: https://patchwork.kernel.org/project/netdevbpf/list/ F: drivers/net/ethernet/mellanox/mlx4/ @@@ -14929,7 -14922,7 +14929,7 @@@ M: Leon Romanovsky <leonro@nvidia.com M: Tariq Toukan tariqt@nvidia.com L: netdev@vger.kernel.org L: linux-rdma@vger.kernel.org -S: Supported +S: Maintained W: https://www.nvidia.com/networking/ Q: https://patchwork.kernel.org/project/netdevbpf/list/ F: Documentation/networking/device_drivers/ethernet/mellanox/ @@@ -15163,7 -15156,7 +15163,7 @@@ META ETHERNET DRIVER M: Alexander Duyck alexanderduyck@fb.com M: Jakub Kicinski kuba@kernel.org R: kernel-team@meta.com -S: Supported +S: Maintained F: Documentation/networking/device_drivers/ethernet/meta/ F: drivers/net/ethernet/meta/
@@@ -15350,7 -15343,7 +15350,7 @@@ M: Daniel Machon <daniel.machon@microch M: UNGLinuxDriver@microchip.com L: netdev@vger.kernel.org S: Maintained -F: drivers/net/ethernet/microchip/lan969x/* +F: drivers/net/ethernet/microchip/sparx5/lan969x/*
MICROCHIP LCDFB DRIVER M: Nicolas Ferre nicolas.ferre@microchip.com @@@ -16171,8 -16164,7 +16171,8 @@@ M: Breno Leitao <leitao@debian.org S: Maintained F: Documentation/networking/netconsole.rst F: drivers/net/netconsole.c -F: tools/testing/selftests/drivers/net/netcons_basic.sh +F: tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh +F: tools/testing/selftests/drivers/net/netcons*
NETDEVSIM M: Jakub Kicinski kuba@kernel.org @@@ -16189,7 -16181,7 +16189,7 @@@ F: net/sched/sch_netem. NETERION 10GbE DRIVERS (s2io) M: Jon Mason jdmason@kudzu.us L: netdev@vger.kernel.org -S: Supported +S: Maintained F: Documentation/networking/device_drivers/ethernet/neterion/s2io.rst F: drivers/net/ethernet/neterion/
@@@ -16275,7 -16267,6 +16275,7 @@@ F: Documentation/devicetree/bindings/ne F: Documentation/networking/net_cachelines/net_device.rst F: drivers/connector/ F: drivers/net/ +F: drivers/ptp/ F: include/dt-bindings/net/ F: include/linux/cn_proc.h F: include/linux/etherdevice.h @@@ -16288,7 -16279,7 +16288,7 @@@ F: include/linux/inetdevice. F: include/linux/netdev* F: include/linux/platform_data/wiznet.h F: include/uapi/linux/cn_proc.h -F: include/uapi/linux/ethtool_netlink.h +F: include/uapi/linux/ethtool_netlink* F: include/uapi/linux/if_* F: include/uapi/linux/net_shaper.h F: include/uapi/linux/netdev* @@@ -16343,7 -16334,6 +16343,7 @@@ F: Documentation/networking F: Documentation/networking/net_cachelines/ F: Documentation/process/maintainer-netdev.rst F: Documentation/userspace-api/netlink/ +F: include/linux/ethtool.h F: include/linux/framer/framer-provider.h F: include/linux/framer/framer.h F: include/linux/in.h @@@ -16358,7 -16348,6 +16358,7 @@@ F: include/linux/rtnetlink. F: include/linux/seq_file_net.h F: include/linux/skbuff* F: include/net/ +F: include/uapi/linux/ethtool.h F: include/uapi/linux/genetlink.h F: include/uapi/linux/hsr_netlink.h F: include/uapi/linux/in.h @@@ -16514,7 -16503,7 +16514,7 @@@ M: Manish Chopra <manishc@marvell.com M: Rahul Verma rahulv@marvell.com M: GR-Linux-NIC-Dev@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/qlogic/netxen/
NET_FAILOVER MODULE @@@ -17646,7 -17635,6 +17646,7 @@@ F: Documentation/core-api/packing.rs F: include/linux/packing.h F: lib/packing.c F: lib/packing_test.c +F: scripts/gen_packed_field_checks.c
PADATA PARALLEL EXECUTION MECHANISM M: Steffen Klassert steffen.klassert@secunet.com @@@ -18291,7 -18279,7 +18291,7 @@@ PENSANDO ETHERNET DRIVER M: Shannon Nelson shannon.nelson@amd.com M: Brett Creeley brett.creeley@amd.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: Documentation/networking/device_drivers/ethernet/pensando/ionic.rst F: drivers/net/ethernet/pensando/
@@@ -18467,7 -18455,7 +18467,7 @@@ F: Documentation/devicetree/bindings/pi F: drivers/pinctrl/mediatek/
PIN CONTROLLER - MEDIATEK MIPS -M: Arınç ÜNAL arinc.unal@arinc9.com +M: Chester A. Unal chester.a.unal@arinc9.com M: Sergio Paracuellos sergio.paracuellos@gmail.com L: linux-mediatek@lists.infradead.org (moderated for non-subscribers) L: linux-mips@vger.kernel.org @@@ -19058,7 -19046,7 +19058,7 @@@ F: drivers/scsi/qedi QLOGIC QL4xxx ETHERNET DRIVER M: Manish Chopra manishc@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/qlogic/qed/ F: drivers/net/ethernet/qlogic/qede/ F: include/linux/qed/ @@@ -19086,7 -19074,7 +19086,7 @@@ F: drivers/scsi/qla2xxx QLOGIC QLA3XXX NETWORK DRIVER M: GR-Linux-NIC-Dev@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/qlogic/qla3xxx.*
QLOGIC QLA4XXX iSCSI DRIVER @@@ -19102,7 -19090,7 +19102,7 @@@ M: Shahed Shaikh <shshaikh@marvell.com M: Manish Chopra manishc@marvell.com M: GR-Linux-NIC-Dev@marvell.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/qlogic/qlcnic/
QM1D1B0004 MEDIA DRIVER @@@ -19511,7 -19499,7 +19511,7 @@@ S: Maintaine F: arch/mips/ralink
RALINK MT7621 MIPS ARCHITECTURE -M: Arınç ÜNAL arinc.unal@arinc9.com +M: Chester A. Unal chester.a.unal@arinc9.com M: Sergio Paracuellos sergio.paracuellos@gmail.com L: linux-mips@vger.kernel.org S: Maintained @@@ -19843,7 -19831,7 +19843,7 @@@ M: Paul Barker <paul.barker.ct@bp.renes M: Niklas Söderlund niklas.soderlund@ragnatech.se L: netdev@vger.kernel.org L: linux-renesas-soc@vger.kernel.org -S: Supported +S: Maintained F: Documentation/devicetree/bindings/net/renesas,etheravb.yaml F: drivers/net/ethernet/renesas/Kconfig F: drivers/net/ethernet/renesas/Makefile @@@ -19863,7 -19851,7 +19863,7 @@@ RENESAS ETHERNET TSN DRIVE M: Niklas Söderlund niklas.soderlund@ragnatech.se L: netdev@vger.kernel.org L: linux-renesas-soc@vger.kernel.org -S: Supported +S: Maintained F: Documentation/devicetree/bindings/net/renesas,ethertsn.yaml F: drivers/net/ethernet/renesas/rtsn.*
@@@ -20013,7 -20001,7 +20013,7 @@@ RENESAS SUPERH ETHERNET DRIVE M: Niklas Söderlund niklas.soderlund@ragnatech.se L: netdev@vger.kernel.org L: linux-renesas-soc@vger.kernel.org -S: Supported +S: Maintained F: Documentation/devicetree/bindings/net/renesas,ether.yaml F: drivers/net/ethernet/renesas/Kconfig F: drivers/net/ethernet/renesas/Makefile @@@ -20856,7 -20844,7 +20856,7 @@@ F: include/linux/platform_data/spi-s3c6 SAMSUNG SXGBE DRIVERS M: Byungho An bh74.an@samsung.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/samsung/sxgbe/
SAMSUNG THERMAL DRIVER @@@ -20914,8 -20902,6 +20914,8 @@@ F: kernel/sched SCHEDULER - SCHED_EXT R: Tejun Heo tj@kernel.org R: David Vernet void@manifault.com +R: Andrea Righi arighi@nvidia.com +R: Changwoo Min changwoo@igalia.com L: linux-kernel@vger.kernel.org S: Maintained W: https://github.com/sched-ext/scx @@@ -21258,7 -21244,7 +21258,7 @@@ M: Edward Cree <ecree.xilinx@gmail.com M: Martin Habets habetsm.xilinx@gmail.com L: netdev@vger.kernel.org L: linux-net-drivers@amd.com -S: Supported +S: Maintained F: Documentation/networking/devlink/sfc.rst F: drivers/net/ethernet/sfc/
@@@ -22000,7 -21986,6 +22000,7 @@@ W: https://github.com/thesofproject/lin F: sound/soc/sof/
SOUND - GENERIC SOUND CARD (Simple-Audio-Card, Audio-Graph-Card) +M: Mark Brown broonie@kernel.org M: Kuninori Morimoto kuninori.morimoto.gx@renesas.com S: Supported L: linux-sound@vger.kernel.org @@@ -22422,7 -22407,7 +22422,7 @@@ F: drivers/char/hw_random/jh7110-trng.
STARFIVE WATCHDOG DRIVER M: Xingyu Wu xingyu.wu@starfivetech.com -M: Samin Guo samin.guo@starfivetech.com +M: Ziv Xu ziv.xu@starfivetech.com S: Supported F: Documentation/devicetree/bindings/watchdog/starfive* F: drivers/watchdog/starfive-wdt.c @@@ -22511,8 -22496,11 +22511,8 @@@ F: Documentation/devicetree/bindings/ph F: drivers/phy/st/phy-stm32-combophy.c
STMMAC ETHERNET DRIVER -M: Alexandre Torgue alexandre.torgue@foss.st.com -M: Jose Abreu joabreu@synopsys.com L: netdev@vger.kernel.org -S: Supported -W: http://www.stlinux.com +S: Orphan F: Documentation/networking/device_drivers/ethernet/stmicro/ F: drivers/net/ethernet/stmicro/stmmac/
@@@ -22740,12 -22728,13 +22740,12 @@@ F: include/linux/platform_data/dma-dw. SYNOPSYS DESIGNWARE ENTERPRISE ETHERNET DRIVER M: Jose Abreu Jose.Abreu@synopsys.com L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/synopsys/
SYNOPSYS DESIGNWARE ETHERNET XPCS DRIVER -M: Jose Abreu Jose.Abreu@synopsys.com L: netdev@vger.kernel.org -S: Supported +S: Orphan F: drivers/net/pcs/pcs-xpcs.c F: drivers/net/pcs/pcs-xpcs.h F: include/linux/pcs/pcs-xpcs.h @@@ -23140,7 -23129,7 +23140,7 @@@ F: drivers/phy/tegra/xusb TEHUTI ETHERNET DRIVER M: Andy Gospodarek andy@greyhouse.net L: netdev@vger.kernel.org -S: Supported +S: Maintained F: drivers/net/ethernet/tehuti/tehuti.*
TEHUTI TN40XX ETHERNET DRIVER @@@ -23653,6 -23642,7 +23653,6 @@@ F: tools/testing/selftests/timers
TIPC NETWORK LAYER M: Jon Maloy jmaloy@redhat.com -M: Ying Xue ying.xue@windriver.com L: netdev@vger.kernel.org (core kernel code) L: tipc-discussion@lists.sourceforge.net (user apps, general discussion) S: Maintained @@@ -24258,8 -24248,7 +24258,8 @@@ F: Documentation/devicetree/bindings/us F: drivers/usb/isp1760/*
USB LAN78XX ETHERNET DRIVER -M: Woojung Huh woojung.huh@microchip.com +M: Thangaraj Samynathan Thangaraj.S@microchip.com +M: Rengarajan Sundararajan Rengarajan.S@microchip.com M: UNGLinuxDriver@microchip.com L: netdev@vger.kernel.org S: Maintained diff --combined net/batman-adv/translation-table.c index 760d51fdbdf60,2bc3407f38b29..3c0a14a582e4b --- a/net/batman-adv/translation-table.c +++ b/net/batman-adv/translation-table.c @@@ -15,6 -15,7 +15,7 @@@ #include <linux/compiler.h> #include <linux/container_of.h> #include <linux/crc32c.h> + #include <linux/err.h> #include <linux/errno.h> #include <linux/etherdevice.h> #include <linux/gfp.h> @@@ -39,7 -40,6 +40,6 @@@ #include <linux/workqueue.h> #include <net/genetlink.h> #include <net/netlink.h> - #include <net/sock.h> #include <uapi/linux/batadv_packet.h> #include <uapi/linux/batman_adv.h>
@@@ -423,8 -423,8 +423,8 @@@ static void batadv_tt_local_event(struc struct batadv_tt_change_node *tt_change_node, *entry, *safe; struct batadv_tt_common_entry *common = &tt_local_entry->common; u8 flags = common->flags | event_flags; - bool event_removed = false; bool del_op_requested, del_op_entry; + size_t changes;
tt_change_node = kmem_cache_alloc(batadv_tt_change_cache, GFP_ATOMIC); if (!tt_change_node) @@@ -438,51 -438,45 +438,45 @@@
del_op_requested = flags & BATADV_TT_CLIENT_DEL;
- /* check for ADD+DEL or DEL+ADD events */ + /* check for ADD+DEL, DEL+ADD, ADD+ADD or DEL+DEL events */ spin_lock_bh(&bat_priv->tt.changes_list_lock); + changes = READ_ONCE(bat_priv->tt.local_changes); list_for_each_entry_safe(entry, safe, &bat_priv->tt.changes_list, list) { if (!batadv_compare_eth(entry->change.addr, common->addr)) continue;
- /* DEL+ADD in the same orig interval have no effect and can be - * removed to avoid silly behaviour on the receiver side. The - * other way around (ADD+DEL) can happen in case of roaming of - * a client still in the NEW state. Roaming of NEW clients is - * now possible due to automatically recognition of "temporary" - * clients - */ del_op_entry = entry->change.flags & BATADV_TT_CLIENT_DEL; - if (!del_op_requested && del_op_entry) - goto del; - if (del_op_requested && !del_op_entry) - goto del; - - /* this is a second add in the same originator interval. It - * means that flags have been changed: update them! - */ - if (!del_op_requested && !del_op_entry) + if (del_op_requested != del_op_entry) { + /* DEL+ADD in the same orig interval have no effect and + * can be removed to avoid silly behaviour on the + * receiver side. The other way around (ADD+DEL) can + * happen in case of roaming of a client still in the + * NEW state. Roaming of NEW clients is now possible due + * to automatically recognition of "temporary" clients + */ + list_del(&entry->list); + kmem_cache_free(batadv_tt_change_cache, entry); + changes--; + } else { + /* this is a second add or del in the same originator + * interval. It could mean that flags have been changed + * (e.g. double add): update them + */ entry->change.flags = flags; + }
- continue; - del: - list_del(&entry->list); - kmem_cache_free(batadv_tt_change_cache, entry); kmem_cache_free(batadv_tt_change_cache, tt_change_node); - event_removed = true; - goto unlock; + goto update_changes; }
/* track the change in the OGMinterval list */ list_add_tail(&tt_change_node->list, &bat_priv->tt.changes_list); + changes++;
- unlock: + update_changes: + WRITE_ONCE(bat_priv->tt.local_changes, changes); spin_unlock_bh(&bat_priv->tt.changes_list_lock); - - if (event_removed) - atomic_dec(&bat_priv->tt.local_changes); - else - atomic_inc(&bat_priv->tt.local_changes); }
/** @@@ -948,25 -942,16 +942,25 @@@ static void batadv_tt_tvlv_container_up int tt_diff_len, tt_change_len = 0; int tt_diff_entries_num = 0; int tt_diff_entries_count = 0; + bool drop_changes = false; + size_t tt_extra_len = 0; u16 tvlv_len;
- tt_diff_entries_num = atomic_read(&bat_priv->tt.local_changes); + tt_diff_entries_num = READ_ONCE(bat_priv->tt.local_changes); tt_diff_len = batadv_tt_len(tt_diff_entries_num);
/* if we have too many changes for one packet don't send any - * and wait for the tt table request which will be fragmented + * and wait for the tt table request so we can reply with the full + * (fragmented) table. + * + * The local change history should still be cleaned up so the next + * TT round can start again with a clean state. */ - if (tt_diff_len > bat_priv->soft_iface->mtu) + if (tt_diff_len > bat_priv->soft_iface->mtu) { tt_diff_len = 0; + tt_diff_entries_num = 0; + drop_changes = true; + }
tvlv_len = batadv_tt_prepare_tvlv_local_data(bat_priv, &tt_data, &tt_change, &tt_diff_len); @@@ -975,11 -960,11 +969,11 @@@
tt_data->flags = BATADV_TT_OGM_DIFF;
- if (tt_diff_len == 0) + if (!drop_changes && tt_diff_len == 0) goto container_register;
spin_lock_bh(&bat_priv->tt.changes_list_lock); - atomic_set(&bat_priv->tt.local_changes, 0); + WRITE_ONCE(bat_priv->tt.local_changes, 0);
list_for_each_entry_safe(entry, safe, &bat_priv->tt.changes_list, list) { @@@ -994,9 -979,6 +988,9 @@@ } spin_unlock_bh(&bat_priv->tt.changes_list_lock);
+ tt_extra_len = batadv_tt_len(tt_diff_entries_num - + tt_diff_entries_count); + /* Keep the buffer for possible tt_request */ spin_lock_bh(&bat_priv->tt.last_changeset_lock); kfree(bat_priv->tt.last_changeset); @@@ -1005,7 -987,6 +999,7 @@@ tt_change_len = batadv_tt_len(tt_diff_entries_count); /* check whether this new OGM has no changes due to size problems */ if (tt_diff_entries_count > 0) { + tt_diff_len -= tt_extra_len; /* if kmalloc() fails we will reply with the full table * instead of providing the diff */ @@@ -1018,8 -999,6 +1012,8 @@@ } spin_unlock_bh(&bat_priv->tt.last_changeset_lock);
+ /* Remove extra packet space for OGM */ + tvlv_len -= tt_extra_len; container_register: batadv_tvlv_container_register(bat_priv, BATADV_TVLV_TT, 1, tt_data, tvlv_len); @@@ -1136,26 -1115,18 +1130,18 @@@ batadv_tt_local_dump_bucket(struct sk_b */ int batadv_tt_local_dump(struct sk_buff *msg, struct netlink_callback *cb) { - struct net *net = sock_net(cb->skb->sk); struct net_device *soft_iface; struct batadv_priv *bat_priv; struct batadv_hard_iface *primary_if = NULL; struct batadv_hashtable *hash; int ret; - int ifindex; int bucket = cb->args[0]; int idx = cb->args[1]; int portid = NETLINK_CB(cb->skb).portid;
- ifindex = batadv_netlink_get_ifindex(cb->nlh, BATADV_ATTR_MESH_IFINDEX); - if (!ifindex) - return -EINVAL; - - soft_iface = dev_get_by_index(net, ifindex); - if (!soft_iface || !batadv_softif_is_valid(soft_iface)) { - ret = -ENODEV; - goto out; - } + soft_iface = batadv_netlink_get_softif(cb); + if (IS_ERR(soft_iface)) + return PTR_ERR(soft_iface);
bat_priv = netdev_priv(soft_iface);
@@@ -1395,7 -1366,7 +1381,7 @@@ static void batadv_tt_changes_list_free kmem_cache_free(batadv_tt_change_cache, entry); }
- atomic_set(&bat_priv->tt.local_changes, 0); + WRITE_ONCE(bat_priv->tt.local_changes, 0); spin_unlock_bh(&bat_priv->tt.changes_list_lock); }
@@@ -1911,28 -1882,20 +1897,20 @@@ batadv_tt_global_dump_bucket(struct sk_ */ int batadv_tt_global_dump(struct sk_buff *msg, struct netlink_callback *cb) { - struct net *net = sock_net(cb->skb->sk); struct net_device *soft_iface; struct batadv_priv *bat_priv; struct batadv_hard_iface *primary_if = NULL; struct batadv_hashtable *hash; struct hlist_head *head; int ret; - int ifindex; int bucket = cb->args[0]; int idx = cb->args[1]; int sub = cb->args[2]; int portid = NETLINK_CB(cb->skb).portid;
- ifindex = batadv_netlink_get_ifindex(cb->nlh, BATADV_ATTR_MESH_IFINDEX); - if (!ifindex) - return -EINVAL; - - soft_iface = dev_get_by_index(net, ifindex); - if (!soft_iface || !batadv_softif_is_valid(soft_iface)) { - ret = -ENODEV; - goto out; - } + soft_iface = batadv_netlink_get_softif(cb); + if (IS_ERR(soft_iface)) + return PTR_ERR(soft_iface);
bat_priv = netdev_priv(soft_iface);
@@@ -2720,16 -2683,14 +2698,16 @@@ static bool batadv_tt_global_valid(cons * * Fills the tvlv buff with the tt entries from the specified hash. If valid_cb * is not provided then this becomes a no-op. + * + * Return: Remaining unused length in tvlv_buff. */ -static void batadv_tt_tvlv_generate(struct batadv_priv *bat_priv, - struct batadv_hashtable *hash, - void *tvlv_buff, u16 tt_len, - bool (*valid_cb)(const void *, - const void *, - u8 *flags), - void *cb_data) +static u16 batadv_tt_tvlv_generate(struct batadv_priv *bat_priv, + struct batadv_hashtable *hash, + void *tvlv_buff, u16 tt_len, + bool (*valid_cb)(const void *, + const void *, + u8 *flags), + void *cb_data) { struct batadv_tt_common_entry *tt_common_entry; struct batadv_tvlv_tt_change *tt_change; @@@ -2743,7 -2704,7 +2721,7 @@@ tt_change = tvlv_buff;
if (!valid_cb) - return; + return tt_len;
rcu_read_lock(); for (i = 0; i < hash->size; i++) { @@@ -2769,8 -2730,6 +2747,8 @@@ } } rcu_read_unlock(); + + return batadv_tt_len(tt_tot - tt_num_entries); }
/** @@@ -3041,11 -3000,10 +3019,11 @@@ static bool batadv_send_other_tt_respon goto out;
/* fill the rest of the tvlv with the real TT entries */ - batadv_tt_tvlv_generate(bat_priv, bat_priv->tt.global_hash, - tt_change, tt_len, - batadv_tt_global_valid, - req_dst_orig_node); + tvlv_len -= batadv_tt_tvlv_generate(bat_priv, + bat_priv->tt.global_hash, + tt_change, tt_len, + batadv_tt_global_valid, + req_dst_orig_node); }
/* Don't send the response, if larger than fragmented packet. */ @@@ -3169,11 -3127,9 +3147,11 @@@ static bool batadv_send_my_tt_response( goto out;
/* fill the rest of the tvlv with the real TT entries */ - batadv_tt_tvlv_generate(bat_priv, bat_priv->tt.local_hash, - tt_change, tt_len, - batadv_tt_local_valid, NULL); + tvlv_len -= batadv_tt_tvlv_generate(bat_priv, + bat_priv->tt.local_hash, + tt_change, tt_len, + batadv_tt_local_valid, + NULL); }
tvlv_tt_data->flags = BATADV_TT_RESPONSE; @@@ -3656,7 -3612,7 +3634,7 @@@ static void batadv_tt_local_commit_chan { lockdep_assert_held(&bat_priv->tt.commit_lock);
- if (atomic_read(&bat_priv->tt.local_changes) < 1) { + if (READ_ONCE(bat_priv->tt.local_changes) == 0) { if (!batadv_atomic_dec_not_zero(&bat_priv->tt.ogm_append_cnt)) batadv_tt_tvlv_container_update(bat_priv); return;