public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Justin M. Forbes <jforbes@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/kernel] f44: kernel-7.1.5-201
Date: Tue, 28 Jul 2026 13:55:54 GMT [thread overview]
Message-ID: <178524695443.1.1717395863067913669.rpms-kernel-415343f9e572@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/kernel
Branch : f44
Commit : 415343f9e57232d1b5694a32469e91c03c40d167
Author : Justin M. Forbes <jforbes@fedoraproject.org>
Date : 2026-07-28T07:55:37-06:00
Stats : +259/-6 in 6 file(s)
URL : https://src.fedoraproject.org/rpms/kernel/c/415343f9e57232d1b5694a32469e91c03c40d167?branch=f44
Log:
kernel-7.1.5-201
* Tue Jul 28 2026 Justin M. Forbes <jforbes@fedoraproject.org> [7.1.5-1]
- ASoC: cs42l43: Correct report for forced microphone jack (Charles Keepax)
- platform/x86/intel-uncore-freq: Fix current_freq_khz after CPU hotplug (Guixiong Wei)
- xfs: fix exchange-range reflink flag clearing issue with INO1_WRITTEN (Lin Jiapeng)
- sched_ext: Record an error on errno-only sub-enable failure (Tejun Heo)
- sched_ext: Enable tick for finite slices on nohz_full (Andrea Righi)
- sched_ext: Don't warn on core-sched forced idle in put_prev_task_scx() (Tejun Heo)
- sched_ext: Annotate ksyncs with __rcu in alloc/free_kick_syncs() (Tejun Heo)
- sched_ext: Skip ops.set_weight() for disabled tasks (Kuba Piecuch)
Resolves:
Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
---
diff --git a/Makefile.rhelver b/Makefile.rhelver
index 95b9fd7..e810b89 100644
--- a/Makefile.rhelver
+++ b/Makefile.rhelver
@@ -12,7 +12,7 @@ RHEL_MINOR = 99
#
# Use this spot to avoid future merge conflicts.
# Do not trim this comment.
-RHEL_RELEASE = 0
+RHEL_RELEASE = 1
#
# RHEL_REBASE_NUM
diff --git a/Patchlist.changelog b/Patchlist.changelog
index 00d9797..e09ffbc 100644
--- a/Patchlist.changelog
+++ b/Patchlist.changelog
@@ -1,3 +1,27 @@
+https://gitlab.com/cki-project/kernel-ark/-/commit/9fa1cceb384aadc5ca345e7f42522bcaf65b1a4f
+ 9fa1cceb384aadc5ca345e7f42522bcaf65b1a4f ASoC: cs42l43: Correct report for forced microphone jack
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/a59488c7e705a2606c09ec29311c71bd3ac5c4ea
+ a59488c7e705a2606c09ec29311c71bd3ac5c4ea platform/x86/intel-uncore-freq: Fix current_freq_khz after CPU hotplug
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/abd818c67ba5b050e679014d01e2980d48db0f7e
+ abd818c67ba5b050e679014d01e2980d48db0f7e xfs: fix exchange-range reflink flag clearing issue with INO1_WRITTEN
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/05c96bd65f42019666ff789620eb8d2525960642
+ 05c96bd65f42019666ff789620eb8d2525960642 sched_ext: Record an error on errno-only sub-enable failure
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/b203ae7a7d0575537d0f585b17c5f30ed0ce11f7
+ b203ae7a7d0575537d0f585b17c5f30ed0ce11f7 sched_ext: Enable tick for finite slices on nohz_full
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/3ab5289da831c4aa0d8c0fbf00ea515e4eadee81
+ 3ab5289da831c4aa0d8c0fbf00ea515e4eadee81 sched_ext: Don't warn on core-sched forced idle in put_prev_task_scx()
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/11c26dc3aba4e6f61a2c3e46d89e98e4a4bf8f6f
+ 11c26dc3aba4e6f61a2c3e46d89e98e4a4bf8f6f sched_ext: Annotate ksyncs with __rcu in alloc/free_kick_syncs()
+
+https://gitlab.com/cki-project/kernel-ark/-/commit/d5bbe4ebc1d2a4cdc5d6c45c91421c3d5bc50c5a
+ d5bbe4ebc1d2a4cdc5d6c45c91421c3d5bc50c5a sched_ext: Skip ops.set_weight() for disabled tasks
+
https://gitlab.com/cki-project/kernel-ark/-/commit/87a4913c27ab87d4d5a6a2fa7a2e5915e4f997bd
87a4913c27ab87d4d5a6a2fa7a2e5915e4f997bd Revert some RHEL only rng patches
diff --git a/kernel.changelog b/kernel.changelog
index 8845335..05a57d1 100644
--- a/kernel.changelog
+++ b/kernel.changelog
@@ -1,3 +1,14 @@
+* Tue Jul 28 2026 Justin M. Forbes <jforbes@fedoraproject.org> [7.1.5-1]
+- ASoC: cs42l43: Correct report for forced microphone jack (Charles Keepax)
+- platform/x86/intel-uncore-freq: Fix current_freq_khz after CPU hotplug (Guixiong Wei)
+- xfs: fix exchange-range reflink flag clearing issue with INO1_WRITTEN (Lin Jiapeng)
+- sched_ext: Record an error on errno-only sub-enable failure (Tejun Heo)
+- sched_ext: Enable tick for finite slices on nohz_full (Andrea Righi)
+- sched_ext: Don't warn on core-sched forced idle in put_prev_task_scx() (Tejun Heo)
+- sched_ext: Annotate ksyncs with __rcu in alloc/free_kick_syncs() (Tejun Heo)
+- sched_ext: Skip ops.set_weight() for disabled tasks (Kuba Piecuch)
+Resolves:
+
* Fri Jul 24 2026 Augusto Caringi <acaringi@redhat.com> [7.1.5-0]
- redhat/configs: fix new config items for aarch64 and s390x (Augusto Caringi)
- Revert some RHEL only rng patches (Justin M. Forbes)
diff --git a/kernel.spec b/kernel.spec
index b7e02e0..9910061 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -190,13 +190,13 @@ Summary: The Linux kernel
%define specrpmversion 7.1.5
%define specversion 7.1.5
%define patchversion 7.1
-%define pkgrelease 200
+%define pkgrelease 201
%define kversion 7
%define tarfile_release 7.1.5
# This is needed to do merge window version magic
%define patchlevel 1
# This allows pkg_release to have configurable %%{?dist} tag
-%define specrelease 200%{?buildid}%{?dist}
+%define specrelease 201%{?buildid}%{?dist}
# This defines the kabi tarball version
%define kabiversion 7.1.5
@@ -4857,6 +4857,16 @@ fi\
#
#
%changelog
+* Tue Jul 28 2026 Justin M. Forbes <jforbes@fedoraproject.org> [7.1.5-1]
+- ASoC: cs42l43: Correct report for forced microphone jack (Charles Keepax)
+- platform/x86/intel-uncore-freq: Fix current_freq_khz after CPU hotplug (Guixiong Wei)
+- xfs: fix exchange-range reflink flag clearing issue with INO1_WRITTEN (Lin Jiapeng)
+- sched_ext: Record an error on errno-only sub-enable failure (Tejun Heo)
+- sched_ext: Enable tick for finite slices on nohz_full (Andrea Righi)
+- sched_ext: Don't warn on core-sched forced idle in put_prev_task_scx() (Tejun Heo)
+- sched_ext: Annotate ksyncs with __rcu in alloc/free_kick_syncs() (Tejun Heo)
+- sched_ext: Skip ops.set_weight() for disabled tasks (Kuba Piecuch)
+
* Fri Jul 24 2026 Augusto Caringi <acaringi@redhat.com> [7.1.5-0]
- redhat/configs: fix new config items for aarch64 and s390x (Augusto Caringi)
- Revert some RHEL only rng patches (Justin M. Forbes)
diff --git a/patch-7.1-redhat.patch b/patch-7.1-redhat.patch
index afe1cd5..f2abc3a 100644
--- a/patch-7.1-redhat.patch
+++ b/patch-7.1-redhat.patch
@@ -40,25 +40,29 @@
drivers/media/pci/intel/ipu-bridge.c | 41 +
drivers/pci/quirks.c | 24 +
drivers/platform/x86/intel/int3472/discrete.c | 18 +
+ .../uncore-frequency/uncore-frequency-common.c | 7 +-
drivers/usb/core/hub.c | 7 +
+ fs/xfs/libxfs/xfs_exchmaps.c | 10 +
include/linux/crypto.h | 2 +
include/linux/efi.h | 22 +-
include/linux/lsm_hook_defs.h | 1 +
include/linux/random.h | 10 +
include/linux/security.h | 9 +
kernel/module/signing.c | 9 +-
+ kernel/sched/ext.c | 75 +-
net/packet/af_packet.c | 6 +-
scripts/Makefile.lib | 3 +
scripts/tags.sh | 2 +
security/integrity/platform_certs/load_uefi.c | 6 +-
security/lockdown/Kconfig | 13 +
security/lockdown/lockdown.c | 11 +
+ sound/soc/codecs/cs42l43-jack.c | 3 +-
sound/soc/codecs/rt722-sdca.c | 77 +-
sound/soc/codecs/rt722-sdca.h | 4 +
tools/testing/selftests/bpf/DENYLIST.rhel | 76 ++
tools/testing/selftests/bpf/Makefile | 2 +-
tools/testing/selftests/bpf/prog_tests/ksyms_btf.c | 31 -
- 60 files changed, 1906 insertions(+), 135 deletions(-)
+ 64 files changed, 1984 insertions(+), 152 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index f74da642290a..06c8bb2075e6 100644
@@ -2562,6 +2566,32 @@ index 115bb37577a1..adff564bf3fd 100644
};
static void int3472_get_con_id_and_polarity(struct int3472_discrete_device *int3472, u8 *type,
+diff --git a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c
+index 7070c94324e0..f8137ee92e47 100644
+--- a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c
++++ b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c
+@@ -275,15 +275,20 @@ int uncore_freq_add_entry(struct uncore_data *data, int cpu)
+ data->package_id, data->die_id);
+ }
+
++ /*
++ * Set the control CPU before any read path so entry recreation after CPU
++ * hotplug can populate read-only attributes from the new online CPU.
++ */
++ data->control_cpu = cpu;
+ uncore_read(data, &data->initial_min_freq_khz, UNCORE_INDEX_MIN_FREQ);
+ uncore_read(data, &data->initial_max_freq_khz, UNCORE_INDEX_MAX_FREQ);
+
+ ret = create_attr_group(data, data->name);
+ if (ret) {
++ data->control_cpu = -1;
+ if (data->domain_id != UNCORE_DOMAIN_ID_INVALID)
+ ida_free(&intel_uncore_ida, data->instance_id);
+ } else {
+- data->control_cpu = cpu;
+ data->valid = true;
+ }
+
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 24960ba9caa9..32597cdb72ef 100644
--- a/drivers/usb/core/hub.c
@@ -2580,6 +2610,27 @@ index 24960ba9caa9..32597cdb72ef 100644
/* Lock the device, then check to see if we were
* disconnected while waiting for the lock to succeed. */
usb_lock_device(hdev);
+diff --git a/fs/xfs/libxfs/xfs_exchmaps.c b/fs/xfs/libxfs/xfs_exchmaps.c
+index 541e33f33167..7fb28c8afef8 100644
+--- a/fs/xfs/libxfs/xfs_exchmaps.c
++++ b/fs/xfs/libxfs/xfs_exchmaps.c
+@@ -959,6 +959,16 @@ xmi_can_exchange_reflink_flags(
+ {
+ struct xfs_mount *mp = req->ip1->i_mount;
+
++ /*
++ * The INO1_WRITTEN optimization can skip exchanging hole and
++ * unwritten mappings, which means we cannot guarantee that all
++ * shared extents actually moved to the other file. Clearing the
++ * reflink flag of an inode that still holds shared extents breaks
++ * the CoW write path, so refuse to exchange the flags in that case.
++ */
++ if (req->flags & XFS_EXCHMAPS_INO1_WRITTEN)
++ return false;
++
+ if (hweight32(reflink_state) != 1)
+ return false;
+ if (req->startoff1 != 0 || req->startoff2 != 0)
diff --git a/include/linux/crypto.h b/include/linux/crypto.h
index a2137e19be7d..79ccb6fabc10 100644
--- a/include/linux/crypto.h
@@ -2742,6 +2793,142 @@ index 590ba29c85ab..02153d857531 100644
}
int module_sig_check(struct load_info *info, int flags)
+diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
+index 5d2d19473a82..46f7b33b565b 100644
+--- a/kernel/sched/ext.c
++++ b/kernel/sched/ext.c
+@@ -2985,24 +2985,38 @@ static void set_next_task_scx(struct rq *rq, struct task_struct *p, bool first)
+
+ /*
+ * @p is getting newly scheduled or got kicked after someone updated its
+- * slice. Refresh whether tick can be stopped. See scx_can_stop_tick().
++ * slice. Update SCX_RQ_CAN_STOP_TICK to reflect whether the tick can be
++ * stopped. See scx_can_stop_tick().
++ *
++ * Moreover, refresh the load_avgs just when transitioning in and out of
++ * nohz. In the future, we might want to add a mechanism to update
++ * load_avgs periodically on tick-stopped CPUs.
+ */
+- if ((p->scx.slice == SCX_SLICE_INF) !=
+- (bool)(rq->scx.flags & SCX_RQ_CAN_STOP_TICK)) {
+- if (p->scx.slice == SCX_SLICE_INF)
++ if (p->scx.slice == SCX_SLICE_INF) {
++ if (!(rq->scx.flags & SCX_RQ_CAN_STOP_TICK)) {
++ /*
++ * Bypass mode always assigns finite slices, so @p
++ * can't have an infinite slice while bypassing.
++ * Therefore, sched_update_tick_dependency() can safely
++ * evaluate the outgoing task.
++ */
+ rq->scx.flags |= SCX_RQ_CAN_STOP_TICK;
+- else
+- rq->scx.flags &= ~SCX_RQ_CAN_STOP_TICK;
++ sched_update_tick_dependency(rq);
+
+- sched_update_tick_dependency(rq);
++ update_other_load_avgs(rq);
++ }
++ } else {
++ if (rq->scx.flags & SCX_RQ_CAN_STOP_TICK) {
++ rq->scx.flags &= ~SCX_RQ_CAN_STOP_TICK;
++ update_other_load_avgs(rq);
++ }
+
+ /*
+- * For now, let's refresh the load_avgs just when transitioning
+- * in and out of nohz. In the future, we might want to add a
+- * mechanism which calls the following periodically on
+- * tick-stopped CPUs.
++ * @rq still references the outgoing scheduling context. A finite
++ * slice is sufficient by itself to require the tick.
+ */
+- update_other_load_avgs(rq);
++ if (tick_nohz_full_cpu(cpu_of(rq)))
++ tick_nohz_dep_set_cpu(cpu_of(rq), TICK_DEP_BIT_SCHED);
+ }
+ }
+
+@@ -3097,9 +3111,14 @@ static void put_prev_task_scx(struct rq *rq, struct task_struct *p,
+ * sched_class, %SCX_OPS_ENQ_LAST must be set. Tell
+ * ops.enqueue() that @p is the only one available for this cpu,
+ * which should trigger an explicit follow-up scheduling event.
++ *
++ * Core scheduling can force this CPU idle while @p stays
++ * runnable. @p's cookie then won't match the core's, so skip
++ * the warning in that case.
+ */
+ if (next && sched_class_above(&ext_sched_class, next->sched_class)) {
+- WARN_ON_ONCE(!(sch->ops.flags & SCX_OPS_ENQ_LAST));
++ WARN_ON_ONCE(sched_cpu_cookie_match(rq, p) &&
++ !(sch->ops.flags & SCX_OPS_ENQ_LAST));
+ do_enqueue_task(rq, p, SCX_ENQ_LAST, -1);
+ } else {
+ do_enqueue_task(rq, p, 0, -1);
+@@ -3904,6 +3923,17 @@ static void reweight_task_scx(struct rq *rq, struct task_struct *p,
+ if (task_dead_and_done(p))
+ return;
+
++ /*
++ * When switching sched_class away from SCX, reweight_task_scx()
++ * is called _after_ scx_disable_task(). Skip calling ops.set_weight()
++ * since the BPF scheduler may have already forgotten the task in
++ * ops.disable().
++ * p->scx.weight will be recalculated in scx_enable_task() if the task
++ * ever returns to SCX class.
++ */
++ if (scx_get_task_state(p) != SCX_TASK_ENABLED)
++ return;
++
+ p->scx.weight = sched_weight_to_cgroup(scale_load_down(lw->weight));
+ if (SCX_HAS_OP(sch, set_weight))
+ SCX_CALL_OP_TASK(sch, set_weight, rq, p, p->scx.weight);
+@@ -4280,6 +4310,15 @@ bool scx_can_stop_tick(struct rq *rq)
+ if (p->sched_class != &ext_sched_class)
+ return true;
+
++ /*
++ * @rq->curr may still reference an outgoing EXT task after it has been
++ * dequeued. If no EXT tasks are accounted on @rq, ignore its stale
++ * slice state. If another task is dispatched from a DSQ,
++ * set_next_task_scx() will update the dependency for the incoming task.
++ */
++ if (!rq->scx.nr_running)
++ return true;
++
+ if (scx_bypassing(sch, cpu_of(rq)))
+ return false;
+
+@@ -5604,7 +5643,7 @@ static void free_kick_syncs(void)
+ int cpu;
+
+ for_each_possible_cpu(cpu) {
+- struct scx_kick_syncs **ksyncs = per_cpu_ptr(&scx_kick_syncs, cpu);
++ struct scx_kick_syncs __rcu **ksyncs = per_cpu_ptr(&scx_kick_syncs, cpu);
+ struct scx_kick_syncs *to_free;
+
+ to_free = rcu_replace_pointer(*ksyncs, NULL, true);
+@@ -6527,7 +6566,7 @@ static int alloc_kick_syncs(void)
+ * can exceed percpu allocator limits on large machines.
+ */
+ for_each_possible_cpu(cpu) {
+- struct scx_kick_syncs **ksyncs = per_cpu_ptr(&scx_kick_syncs, cpu);
++ struct scx_kick_syncs __rcu **ksyncs = per_cpu_ptr(&scx_kick_syncs, cpu);
+ struct scx_kick_syncs *new_ksyncs;
+
+ WARN_ON_ONCE(rcu_access_pointer(*ksyncs));
+@@ -7401,6 +7440,12 @@ static void scx_sub_enable_workfn(struct kthread_work *work)
+ percpu_up_write(&scx_fork_rwsem);
+ err_disable:
+ mutex_unlock(&scx_enable_mutex);
++ /*
++ * Some enable failures only return an errno (e.g. -ENOMEM from an
++ * allocation) without calling scx_error(). Record it so
++ * scx_flush_disable_work() runs the disable and ops.exit() fires.
++ */
++ scx_error(sch, "scx_sub_enable() failed (%d)", ret);
+ scx_flush_disable_work(sch);
+ cmd->ret = 0;
+ }
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 8e6f3a734ba0..e75d2932475a 100644
--- a/net/packet/af_packet.c
@@ -2857,6 +3044,27 @@ index 8d46886d2cca..14a9cdff942b 100644
static struct security_hook_list lockdown_hooks[] __ro_after_init = {
LSM_HOOK_INIT(locked_down, lockdown_is_locked_down),
};
+diff --git a/sound/soc/codecs/cs42l43-jack.c b/sound/soc/codecs/cs42l43-jack.c
+index 3e04e6897b14..e88109979c18 100644
+--- a/sound/soc/codecs/cs42l43-jack.c
++++ b/sound/soc/codecs/cs42l43-jack.c
+@@ -310,6 +310,7 @@ irqreturn_t cs42l43_bias_detect_clamp(int irq, void *data)
+ #define CS42L43_JACK_ABSENT 0x0
+
+ #define CS42L43_JACK_OPTICAL (SND_JACK_MECHANICAL | SND_JACK_AVOUT)
++#define CS42L43_JACK_MICROPHONE (SND_JACK_MECHANICAL | SND_JACK_MICROPHONE)
+ #define CS42L43_JACK_HEADPHONE (SND_JACK_MECHANICAL | SND_JACK_HEADPHONE)
+ #define CS42L43_JACK_HEADSET (SND_JACK_MECHANICAL | SND_JACK_HEADSET)
+ #define CS42L43_JACK_LINEOUT (SND_JACK_MECHANICAL | SND_JACK_LINEOUT)
+@@ -871,7 +872,7 @@ static const struct cs42l43_jack_override_mode {
+ .hsdet_mode = CS42L43_JACK_3_POLE_SWITCHES,
+ .mic_ctrl = (0x3 << CS42L43_JACK_STEREO_CONFIG_SHIFT) |
+ CS42L43_HS1_BIAS_EN_MASK | CS42L43_HS2_BIAS_EN_MASK,
+- .report = CS42L43_JACK_LINEIN,
++ .report = CS42L43_JACK_MICROPHONE,
+ },
+ [CS42L43_JACK_RAW_OPTICAL] = {
+ .hsdet_mode = CS42L43_JACK_3_POLE_SWITCHES,
diff --git a/sound/soc/codecs/rt722-sdca.c b/sound/soc/codecs/rt722-sdca.c
index 79b8b7e70a33..23d2f63d68ef 100644
--- a/sound/soc/codecs/rt722-sdca.c
diff --git a/sources b/sources
index fdc7de5..31b5923 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (linux-7.1.5.tar.xz) = 76494c121d81bf6b631128234ad2a8037490521f77664ee74bf9c143dd4d3f282cec571e9f96a63004f88ebfcde376b483dac5ccac4f43f138ab5bbeb8441e03
-SHA512 (kernel-abi-stablelists-7.1.5.tar.xz) = 8f7c180f2479f4aa06b9721b1fc1804acf9111f4080fe7d310cb24548046a1ca645d97ffc90c8a8fa3c2272cdf6d1f4f0a582bc52a951b2fad888daf7292ff43
-SHA512 (kernel-kabi-dw-7.1.5.tar.xz) = 5d4c22832b038e1be3fcac0d7f0d9b558f27739714c3f93ff31aa42e35ae5541c9d0d04c7cf17ba7a4b740a5fabc00ef2d3fc15368d4abd0eb372050b1b5fca0
+SHA512 (kernel-abi-stablelists-7.1.5.tar.xz) = 4b8b3703bf2a363714463dbd3e07c686e343db151611d95a7f7489e9b2e5b461614ad4bd9e4fae5a97da69da8eb9bd929cf36499ec72ca06d51990d182b9425c
+SHA512 (kernel-kabi-dw-7.1.5.tar.xz) = 4639079ff90478411ac29ac9736d9507584494f1adbc97914a6a86251baa6f97da0000bc4d06b0407c1b565373ccde285cecf6f71ad5632402a7282243cc7540
reply other threads:[~2026-07-28 13:55 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=178524695443.1.1717395863067913669.rpms-kernel-415343f9e572@fedoraproject.org \
--to=jforbes@fedoraproject.org \
--cc=git-commits@fedoraproject.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox