All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Nikolay Aleksandrov <nikolay@cumulusnetworks.com>,
	"David S. Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.19 46/96] net: bridge: fdb: convert is_static to bitops
Date: Tue, 10 Sep 2024 11:31:48 +0200	[thread overview]
Message-ID: <20240910092543.562920679@linuxfoundation.org> (raw)
In-Reply-To: <20240910092541.383432924@linuxfoundation.org>

4.19-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>

[ Upstream commit 29e63fffd666f1945756882d4b02bc7bec132101 ]

Convert the is_static to bitops, make use of the combined
test_and_set/clear_bit to simplify expressions in fdb_add_entry.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stable-dep-of: bee2ef946d31 ("net: bridge: br_fdb_external_learn_add(): always set EXT_LEARN")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/bridge/br_fdb.c     | 40 +++++++++++++++++++---------------------
 net/bridge/br_private.h |  4 ++--
 2 files changed, 21 insertions(+), 23 deletions(-)

diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index f01ccf6ca4f4..2639cc744bca 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -80,8 +80,9 @@ static inline unsigned long hold_time(const struct net_bridge *br)
 static inline int has_expired(const struct net_bridge *br,
 				  const struct net_bridge_fdb_entry *fdb)
 {
-	return !fdb->is_static && !fdb->added_by_external_learn &&
-		time_before_eq(fdb->updated + hold_time(br), jiffies);
+	return !test_bit(BR_FDB_STATIC, &fdb->flags) &&
+	       !fdb->added_by_external_learn &&
+	       time_before_eq(fdb->updated + hold_time(br), jiffies);
 }
 
 static void fdb_rcu_free(struct rcu_head *head)
@@ -202,7 +203,7 @@ static void fdb_delete(struct net_bridge *br, struct net_bridge_fdb_entry *f,
 {
 	trace_fdb_delete(br, f);
 
-	if (f->is_static)
+	if (test_bit(BR_FDB_STATIC, &f->flags))
 		fdb_del_hw_addr(br, f->key.addr.addr);
 
 	hlist_del_init_rcu(&f->fdb_node);
@@ -355,7 +356,8 @@ void br_fdb_cleanup(struct work_struct *work)
 	hlist_for_each_entry_rcu(f, &br->fdb_list, fdb_node) {
 		unsigned long this_timer;
 
-		if (f->is_static || f->added_by_external_learn)
+		if (test_bit(BR_FDB_STATIC, &f->flags) ||
+		    f->added_by_external_learn)
 			continue;
 		this_timer = f->updated + delay;
 		if (time_after(this_timer, now)) {
@@ -382,7 +384,7 @@ void br_fdb_flush(struct net_bridge *br)
 
 	spin_lock_bh(&br->hash_lock);
 	hlist_for_each_entry_safe(f, tmp, &br->fdb_list, fdb_node) {
-		if (!f->is_static)
+		if (!test_bit(BR_FDB_STATIC, &f->flags))
 			fdb_delete(br, f, true);
 	}
 	spin_unlock_bh(&br->hash_lock);
@@ -406,7 +408,8 @@ void br_fdb_delete_by_port(struct net_bridge *br,
 			continue;
 
 		if (!do_all)
-			if (f->is_static || (vid && f->key.vlan_id != vid))
+			if (test_bit(BR_FDB_STATIC, &f->flags) ||
+			    (vid && f->key.vlan_id != vid))
 				continue;
 
 		if (test_bit(BR_FDB_LOCAL, &f->flags))
@@ -479,7 +482,7 @@ int br_fdb_fillbuf(struct net_bridge *br, void *buf,
 		fe->port_hi = f->dst->port_no >> 8;
 
 		fe->is_local = test_bit(BR_FDB_LOCAL, &f->flags);
-		if (!f->is_static)
+		if (!test_bit(BR_FDB_STATIC, &f->flags))
 			fe->ageing_timer_value = jiffies_delta_to_clock_t(jiffies - f->updated);
 		++fe;
 		++num;
@@ -506,7 +509,8 @@ static struct net_bridge_fdb_entry *fdb_create(struct net_bridge *br,
 		fdb->flags = 0;
 		if (is_local)
 			set_bit(BR_FDB_LOCAL, &fdb->flags);
-		fdb->is_static = is_static;
+		if (is_static)
+			set_bit(BR_FDB_STATIC, &fdb->flags);
 		fdb->added_by_user = 0;
 		fdb->added_by_external_learn = 0;
 		fdb->offloaded = 0;
@@ -628,7 +632,7 @@ static int fdb_to_nud(const struct net_bridge *br,
 {
 	if (test_bit(BR_FDB_LOCAL, &fdb->flags))
 		return NUD_PERMANENT;
-	else if (fdb->is_static)
+	else if (test_bit(BR_FDB_STATIC, &fdb->flags))
 		return NUD_NOARP;
 	else if (has_expired(br, fdb))
 		return NUD_STALE;
@@ -825,22 +829,16 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source,
 	if (fdb_to_nud(br, fdb) != state) {
 		if (state & NUD_PERMANENT) {
 			set_bit(BR_FDB_LOCAL, &fdb->flags);
-			if (!fdb->is_static) {
-				fdb->is_static = 1;
+			if (!test_and_set_bit(BR_FDB_STATIC, &fdb->flags))
 				fdb_add_hw_addr(br, addr);
-			}
 		} else if (state & NUD_NOARP) {
 			clear_bit(BR_FDB_LOCAL, &fdb->flags);
-			if (!fdb->is_static) {
-				fdb->is_static = 1;
+			if (!test_and_set_bit(BR_FDB_STATIC, &fdb->flags))
 				fdb_add_hw_addr(br, addr);
-			}
 		} else {
 			clear_bit(BR_FDB_LOCAL, &fdb->flags);
-			if (fdb->is_static) {
-				fdb->is_static = 0;
+			if (test_and_clear_bit(BR_FDB_STATIC, &fdb->flags))
 				fdb_del_hw_addr(br, addr);
-			}
 		}
 
 		modified = true;
@@ -1047,7 +1045,7 @@ int br_fdb_sync_static(struct net_bridge *br, struct net_bridge_port *p)
 	rcu_read_lock();
 	hlist_for_each_entry_rcu(f, &br->fdb_list, fdb_node) {
 		/* We only care for static entries */
-		if (!f->is_static)
+		if (!test_bit(BR_FDB_STATIC, &f->flags))
 			continue;
 		err = dev_uc_add(p->dev, f->key.addr.addr);
 		if (err)
@@ -1061,7 +1059,7 @@ int br_fdb_sync_static(struct net_bridge *br, struct net_bridge_port *p)
 rollback:
 	hlist_for_each_entry_rcu(tmp, &br->fdb_list, fdb_node) {
 		/* We only care for static entries */
-		if (!tmp->is_static)
+		if (!test_bit(BR_FDB_STATIC, &tmp->flags))
 			continue;
 		if (tmp == f)
 			break;
@@ -1080,7 +1078,7 @@ void br_fdb_unsync_static(struct net_bridge *br, struct net_bridge_port *p)
 	rcu_read_lock();
 	hlist_for_each_entry_rcu(f, &br->fdb_list, fdb_node) {
 		/* We only care for static entries */
-		if (!f->is_static)
+		if (!test_bit(BR_FDB_STATIC, &f->flags))
 			continue;
 
 		dev_uc_del(p->dev, f->key.addr.addr);
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index 6a38ea247a9e..c3160d73e6ed 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -171,6 +171,7 @@ struct net_bridge_vlan_group {
 /* bridge fdb flags */
 enum {
 	BR_FDB_LOCAL,
+	BR_FDB_STATIC,
 };
 
 struct net_bridge_fdb_key {
@@ -185,8 +186,7 @@ struct net_bridge_fdb_entry {
 	struct net_bridge_fdb_key	key;
 	struct hlist_node		fdb_node;
 	unsigned long			flags;
-	unsigned char			is_static:1,
-					is_sticky:1,
+	unsigned char			is_sticky:1,
 					added_by_user:1,
 					added_by_external_learn:1,
 					offloaded:1;
-- 
2.43.0




  parent reply	other threads:[~2024-09-10  9:37 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-10  9:31 [PATCH 4.19 00/96] 4.19.322-rc1 review Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 01/96] net: usb: qmi_wwan: add MeiG Smart SRM825L Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 02/96] usb: dwc3: st: Add of_node_put() before return in probe function Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 03/96] usb: dwc3: st: add missing depopulate in probe error path Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 04/96] drm/amdgpu: Fix uninitialized variable warning in amdgpu_afmt_acr Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 05/96] drm/amdgpu: fix overflowed array index read warning Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 06/96] drm/amdgpu: fix ucode out-of-bounds " Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 07/96] drm/amdgpu: fix mc_data " Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 08/96] drm/amdkfd: Reconcile the definition and use of oem_id in struct kfd_topology_device Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 09/96] apparmor: fix possible NULL pointer dereference Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 10/96] usbip: Dont submit special requests twice Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 11/96] smack: tcp: ipv4, fix incorrect labeling Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 12/96] media: uvcvideo: Enforce alignment of frame and interval Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 13/96] block: initialize integrity buffer to zero before writing it to media Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 14/96] virtio_net: Fix napi_skb_cache_put warning Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 15/96] udf: Limit file size to 4TB Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 16/96] ALSA: usb-audio: Sanity checks for each pipe and EP types Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 17/96] ALSA: usb-audio: Fix gpf in snd_usb_pipe_sanity_check Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 18/96] sch/netem: fix use after free in netem_dequeue Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 19/96] ALSA: hda/conexant: Add pincfg quirk to enable top speakers on Sirius devices Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 20/96] ata: libata: Fix memory leak for error path in ata_host_alloc() Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 21/96] mmc: dw_mmc: Fix IDMAC operation with pages bigger than 4K Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 22/96] fuse: use unsigned type for getxattr/listxattr size truncation Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 23/96] clk: qcom: clk-alpha-pll: Fix the pll post div mask Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 24/96] nilfs2: fix missing cleanup on rollforward recovery error Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 25/96] nilfs2: fix state management in error path of log writing function Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 26/96] ALSA: hda: Add input value sanity checks to HDMI channel map controls Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 27/96] smack: unix sockets: fix accept()ed socket label Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 28/96] irqchip/armada-370-xp: Do not allow mapping IRQ 0 and 1 Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 29/96] af_unix: Remove put_pid()/put_cred() in copy_peercred() Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 30/96] netfilter: nf_conncount: fix wrong variable type Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 31/96] udf: Avoid excessive partition lengths Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 32/96] wifi: brcmsmac: advertise MFP_CAPABLE to enable WPA3 Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 33/96] media: qcom: camss: Add check for v4l2_fwnode_endpoint_parse Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 34/96] pcmcia: Use resource_size function on resource object Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 35/96] can: bcm: Remove proc entry when dev is unregistered Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 36/96] igb: Fix not clearing TimeSync interrupts for 82580 Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 37/96] platform/x86: dell-smbios: Fix error path in dell_smbios_init() Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 38/96] cx82310_eth: re-enable ethernet mode after router reboot Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 39/96] drivers/net/usb: Remove all strcpy() uses Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 40/96] net: usb: dont write directly to netdev->dev_addr Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 41/96] usbnet: modern method to get random MAC Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 42/96] rfkill: fix spelling mistake contidion to condition Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 43/96] net: bridge: add support for sticky fdb entries Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 44/96] bridge: switchdev: Allow clearing FDB entry offload indication Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 45/96] net: bridge: fdb: convert is_local to bitops Greg Kroah-Hartman
2024-09-10  9:31 ` Greg Kroah-Hartman [this message]
2024-09-10  9:31 ` [PATCH 4.19 47/96] net: bridge: fdb: convert is_sticky " Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 48/96] net: bridge: fdb: convert added_by_user " Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 49/96] net: bridge: fdb: convert added_by_external_learn to use bitops Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 50/96] net: bridge: br_fdb_external_learn_add(): always set EXT_LEARN Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 51/96] net: dsa: vsc73xx: fix possible subblocks range of CAPT block Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 52/96] iommu/vt-d: Handle volatile descriptor status read Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 53/96] cgroup: Protect css->cgroup write under css_set_lock Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 54/96] um: line: always fill *error_out in setup_one_line() Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 55/96] devres: Initialize an uninitialized struct member Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 56/96] pci/hotplug/pnv_php: Fix hotplug driver crash on Powernv Greg Kroah-Hartman
2024-09-10  9:31 ` [PATCH 4.19 57/96] hwmon: (adc128d818) Fix underflows seen when writing limit attributes Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 58/96] hwmon: (lm95234) " Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 59/96] hwmon: (nct6775-core) " Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 60/96] hwmon: (w83627ehf) " Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 61/96] wifi: mwifiex: Do not return unused priv in mwifiex_get_priv_by_id() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 62/96] smp: Add missing destroy_work_on_stack() call in smp_call_on_cpu() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 63/96] btrfs: replace BUG_ON with ASSERT in walk_down_proc() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 64/96] btrfs: clean up our handling of refs == 0 in snapshot delete Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 65/96] PCI: Add missing bridge lock to pci_bus_lock() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 66/96] btrfs: initialize location to fix -Wmaybe-uninitialized in btrfs_lookup_dentry() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 67/96] HID: cougar: fix slab-out-of-bounds Read in cougar_report_fixup Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 68/96] Input: uinput - reject requests with unreasonable number of slots Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 69/96] usbnet: ipheth: race between ipheth_close and error handling Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 70/96] Squashfs: sanity check symbolic link size Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 71/96] of/irq: Prevent device address out-of-bounds read in interrupt map walk Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 72/96] ata: pata_macio: Use WARN instead of BUG Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 73/96] iio: buffer-dmaengine: fix releasing dma channel on error Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 74/96] iio: fix scale application in iio_convert_raw_to_processed_unlocked Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 75/96] nvmem: Fix return type of devm_nvmem_device_get() in kerneldoc Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 76/96] uio_hv_generic: Fix kernel NULL pointer dereference in hv_uio_rescind Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 77/96] Drivers: hv: vmbus: Fix rescind handling in uio_hv_generic Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 78/96] VMCI: Fix use-after-free when removing resource in vmci_resource_remove() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 79/96] clocksource/drivers/imx-tpm: Fix return -ETIME when delta exceeds INT_MAX Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 80/96] clocksource/drivers/imx-tpm: Fix next event not taking effect sometime Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 81/96] uprobes: Use kzalloc to allocate xol area Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 82/96] ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 83/96] tracing: Avoid possible softlockup in tracing_iter_reset() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 84/96] nilfs2: replace snprintf in show functions with sysfs_emit Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 85/96] nilfs2: protect references to superblock parameters exposed in sysfs Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 86/96] netns: add pre_exit method to struct pernet_operations Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 87/96] ila: call nf_unregister_net_hooks() sooner Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 88/96] ACPI: processor: Return an error if acpi_processor_get_info() fails in processor_add() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 89/96] ACPI: processor: Fix memory leaks in error paths of processor_add() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 90/96] drm/i915/fence: Mark debug_fence_init_onstack() with __maybe_unused Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 91/96] drm/i915/fence: Mark debug_fence_free() " Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 92/96] rtmutex: Drop rt_mutex::wait_lock before scheduling Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 93/96] net, sunrpc: Remap EPERM in case of connection failure in xs_tcp_setup_socket Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 94/96] cx82310_eth: fix error return code in cx82310_bind() Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 95/96] net: bridge: explicitly zero is_sticky in fdb_create Greg Kroah-Hartman
2024-09-10  9:32 ` [PATCH 4.19 96/96] netns: restore ops before calling ops_exit_list Greg Kroah-Hartman
2024-09-10 23:03 ` [PATCH 4.19 00/96] 4.19.322-rc1 review Shuah Khan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240910092543.562920679@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=davem@davemloft.net \
    --cc=nikolay@cumulusnetworks.com \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.