From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [android-common:android14-kiwi-6.1 390/390] kernel/trace/ring_buffer.c:2177 ring_buffer_resize() warn: variable dereferenced before check 'buffer' (see line 2172)
Date: Thu, 05 Nov 2026 14:56:32 +0100 [thread overview]
Message-ID: <202611051422.WODTXWDt-lkp@intel.com> (raw)
Unfiltered warning: this smatch report is sent as-is and has not been
reviewed for false positives, so please treat it with due skepticism.
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: cros-kernel-buildreports@googlegroups.com
tree: https://android.googlesource.com/kernel/common android14-kiwi-6.1
head: 900d46d1c904d34d7c3eeb0ef2119cffc5a8ab3d
commit: 5ecbcb61e172d82faf1bd8c00b17837d3c658c59 [390/390] ANDROID: ring-buffer: Introducing external writer support
:::::: branch date: 16 hours ago
:::::: commit date: 3 years, 9 months ago
config: i386-randconfig-2200-20261105 (https://download.01.org/0day-ci/archive/20261105/202611051422.WODTXWDt-lkp@intel.com/config)
compiler: clang version 22.1.8 (https://github.com/llvm/llvm-project ca7933e47d3a3451d81e72ac174dcb5aa28b59d1)
smatch: v0.5.0-9187-g5189e3fb
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202611051422.WODTXWDt-lkp@intel.com/
smatch warnings:
kernel/trace/ring_buffer.c:2177 ring_buffer_resize() warn: variable dereferenced before check 'buffer' (see line 2172)
vim +/buffer +2177 kernel/trace/ring_buffer.c
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2154
7a8e76a3829f10 Steven Rostedt 2008-09-29 2155 /**
7a8e76a3829f10 Steven Rostedt 2008-09-29 2156 * ring_buffer_resize - resize the ring buffer
7a8e76a3829f10 Steven Rostedt 2008-09-29 2157 * @buffer: the buffer to resize.
7a8e76a3829f10 Steven Rostedt 2008-09-29 2158 * @size: the new size.
d611851b421731 zhangwei(Jovi 2013-07-15 2159) * @cpu_id: the cpu buffer to resize
7a8e76a3829f10 Steven Rostedt 2008-09-29 2160 *
7a8e76a3829f10 Steven Rostedt 2008-09-29 2161 * Minimum size is 2 * BUF_PAGE_SIZE.
7a8e76a3829f10 Steven Rostedt 2008-09-29 2162 *
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2163 * Returns 0 on success and < 0 on failure.
7a8e76a3829f10 Steven Rostedt 2008-09-29 2164 */
13292494379f92 Steven Rostedt (VMware 2019-12-13 2165) int ring_buffer_resize(struct trace_buffer *buffer, unsigned long size,
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2166 int cpu_id)
7a8e76a3829f10 Steven Rostedt 2008-09-29 2167 {
7a8e76a3829f10 Steven Rostedt 2008-09-29 2168 struct ring_buffer_per_cpu *cpu_buffer;
9b94a8fba501f3 Steven Rostedt (Red Hat 2016-05-12 2169) unsigned long nr_pages;
0a1754b2a97efa Qiujun Huang 2020-10-19 2170 int cpu, err;
7a8e76a3829f10 Steven Rostedt 2008-09-29 2171
5ecbcb61e172d8 Vincent Donnefort 2022-08-24 @2172 if (unlikely(has_ext_writer(buffer)))
5ecbcb61e172d8 Vincent Donnefort 2022-08-24 2173 return -EINVAL;
ee51a1de7e3837 Ingo Molnar 2008-11-13 2174 /*
ee51a1de7e3837 Ingo Molnar 2008-11-13 2175 * Always succeed at resizing a non-existent buffer:
ee51a1de7e3837 Ingo Molnar 2008-11-13 2176 */
ee51a1de7e3837 Ingo Molnar 2008-11-13 @2177 if (!buffer)
0a1754b2a97efa Qiujun Huang 2020-10-19 2178 return 0;
ee51a1de7e3837 Ingo Molnar 2008-11-13 2179
6a31e1f135d1ab Steven Rostedt 2012-05-23 2180 /* Make sure the requested buffer exists */
6a31e1f135d1ab Steven Rostedt 2012-05-23 2181 if (cpu_id != RING_BUFFER_ALL_CPUS &&
6a31e1f135d1ab Steven Rostedt 2012-05-23 2182 !cpumask_test_cpu(cpu_id, buffer->cpumask))
0a1754b2a97efa Qiujun Huang 2020-10-19 2183 return 0;
6a31e1f135d1ab Steven Rostedt 2012-05-23 2184
59643d1535eb22 Steven Rostedt (Red Hat 2016-05-13 2185) nr_pages = DIV_ROUND_UP(size, BUF_PAGE_SIZE);
7a8e76a3829f10 Steven Rostedt 2008-09-29 2186
7a8e76a3829f10 Steven Rostedt 2008-09-29 2187 /* we need a minimum of two pages */
59643d1535eb22 Steven Rostedt (Red Hat 2016-05-13 2188) if (nr_pages < 2)
59643d1535eb22 Steven Rostedt (Red Hat 2016-05-13 2189) nr_pages = 2;
7a8e76a3829f10 Steven Rostedt 2008-09-29 2190
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2191) /* prevent another thread from changing buffer sizes */
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2192) mutex_lock(&buffer->mutex);
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2193)
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2194)
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2195) if (cpu_id == RING_BUFFER_ALL_CPUS) {
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2196 /*
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2197 * Don't succeed if resizing is disabled, as a reader might be
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2198 * manipulating the ring buffer and is expecting a sane state while
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2199 * this is true.
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2200 */
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2201) for_each_buffer_cpu(buffer, cpu) {
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2202) cpu_buffer = buffer->buffers[cpu];
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2203) if (atomic_read(&cpu_buffer->resize_disabled)) {
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2204) err = -EBUSY;
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2205) goto out_err_unlock;
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2206) }
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2207) }
7a8e76a3829f10 Steven Rostedt 2008-09-29 2208
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2209 /* calculate the pages to update */
7a8e76a3829f10 Steven Rostedt 2008-09-29 2210 for_each_buffer_cpu(buffer, cpu) {
7a8e76a3829f10 Steven Rostedt 2008-09-29 2211 cpu_buffer = buffer->buffers[cpu];
7a8e76a3829f10 Steven Rostedt 2008-09-29 2212
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2213 cpu_buffer->nr_pages_to_update = nr_pages -
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2214 cpu_buffer->nr_pages;
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2215 /*
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2216 * nothing more to do for removing pages or no update
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2217 */
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2218 if (cpu_buffer->nr_pages_to_update <= 0)
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2219 continue;
d7ec4bfed6c974 Vaibhav Nagarnaik 2011-06-07 2220 /*
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2221 * to add pages, make sure all new pages can be
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2222 * allocated without receiving ENOMEM
d7ec4bfed6c974 Vaibhav Nagarnaik 2011-06-07 2223 */
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2224 INIT_LIST_HEAD(&cpu_buffer->new_pages);
74e2afc6df5782 Qiujun Huang 2020-10-15 2225 if (__rb_allocate_pages(cpu_buffer, cpu_buffer->nr_pages_to_update,
74e2afc6df5782 Qiujun Huang 2020-10-15 2226 &cpu_buffer->new_pages)) {
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2227 /* not enough memory for new pages */
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2228 err = -ENOMEM;
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2229 goto out_err;
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2230 }
7a8e76a3829f10 Steven Rostedt 2008-09-29 2231 }
7a8e76a3829f10 Steven Rostedt 2008-09-29 2232
99c37d1a63eafc Sebastian Andrzej Siewior 2021-08-03 2233 cpus_read_lock();
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2234 /*
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2235 * Fire off all the required work handlers
05fdd70d2fe1e3 Vaibhav Nagarnaik 2012-05-18 2236 * We can't schedule on offline CPUs, but it's not necessary
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2237 * since we can change their buffer sizes without any race.
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2238 */
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2239 for_each_buffer_cpu(buffer, cpu) {
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2240 cpu_buffer = buffer->buffers[cpu];
05fdd70d2fe1e3 Vaibhav Nagarnaik 2012-05-18 2241 if (!cpu_buffer->nr_pages_to_update)
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2242 continue;
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2243
021c5b34452d52 Corey Minyard 2014-07-16 2244 /* Can't run something on an offline CPU. */
021c5b34452d52 Corey Minyard 2014-07-16 2245 if (!cpu_online(cpu)) {
f5eb5588262cab Steven Rostedt (Red Hat 2013-03-07 2246) rb_update_pages(cpu_buffer);
f5eb5588262cab Steven Rostedt (Red Hat 2013-03-07 2247) cpu_buffer->nr_pages_to_update = 0;
f5eb5588262cab Steven Rostedt (Red Hat 2013-03-07 2248) } else {
05fdd70d2fe1e3 Vaibhav Nagarnaik 2012-05-18 2249 schedule_work_on(cpu,
05fdd70d2fe1e3 Vaibhav Nagarnaik 2012-05-18 2250 &cpu_buffer->update_pages_work);
f5eb5588262cab Steven Rostedt (Red Hat 2013-03-07 2251) }
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2252 }
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2253
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2254 /* wait for all the updates to complete */
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2255 for_each_buffer_cpu(buffer, cpu) {
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2256 cpu_buffer = buffer->buffers[cpu];
05fdd70d2fe1e3 Vaibhav Nagarnaik 2012-05-18 2257 if (!cpu_buffer->nr_pages_to_update)
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2258 continue;
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2259
05fdd70d2fe1e3 Vaibhav Nagarnaik 2012-05-18 2260 if (cpu_online(cpu))
05fdd70d2fe1e3 Vaibhav Nagarnaik 2012-05-18 2261 wait_for_completion(&cpu_buffer->update_done);
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2262 cpu_buffer->nr_pages_to_update = 0;
7a8e76a3829f10 Steven Rostedt 2008-09-29 2263 }
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2264
99c37d1a63eafc Sebastian Andrzej Siewior 2021-08-03 2265 cpus_read_unlock();
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2266 } else {
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2267 cpu_buffer = buffer->buffers[cpu_id];
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2268
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2269 if (nr_pages == cpu_buffer->nr_pages)
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2270 goto out;
7a8e76a3829f10 Steven Rostedt 2008-09-29 2271
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2272) /*
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2273) * Don't succeed if resizing is disabled, as a reader might be
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2274) * manipulating the ring buffer and is expecting a sane state while
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2275) * this is true.
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2276) */
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2277) if (atomic_read(&cpu_buffer->resize_disabled)) {
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2278) err = -EBUSY;
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2279) goto out_err_unlock;
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2280) }
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2281)
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2282 cpu_buffer->nr_pages_to_update = nr_pages -
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2283 cpu_buffer->nr_pages;
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2284
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2285 INIT_LIST_HEAD(&cpu_buffer->new_pages);
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2286 if (cpu_buffer->nr_pages_to_update > 0 &&
74e2afc6df5782 Qiujun Huang 2020-10-15 2287 __rb_allocate_pages(cpu_buffer, cpu_buffer->nr_pages_to_update,
74e2afc6df5782 Qiujun Huang 2020-10-15 2288 &cpu_buffer->new_pages)) {
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2289 err = -ENOMEM;
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2290 goto out_err;
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2291 }
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2292
99c37d1a63eafc Sebastian Andrzej Siewior 2021-08-03 2293 cpus_read_lock();
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2294
021c5b34452d52 Corey Minyard 2014-07-16 2295 /* Can't run something on an offline CPU. */
021c5b34452d52 Corey Minyard 2014-07-16 2296 if (!cpu_online(cpu_id))
f5eb5588262cab Steven Rostedt (Red Hat 2013-03-07 2297) rb_update_pages(cpu_buffer);
f5eb5588262cab Steven Rostedt (Red Hat 2013-03-07 2298) else {
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2299 schedule_work_on(cpu_id,
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2300 &cpu_buffer->update_pages_work);
05fdd70d2fe1e3 Vaibhav Nagarnaik 2012-05-18 2301 wait_for_completion(&cpu_buffer->update_done);
f5eb5588262cab Steven Rostedt (Red Hat 2013-03-07 2302) }
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2303
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2304 cpu_buffer->nr_pages_to_update = 0;
99c37d1a63eafc Sebastian Andrzej Siewior 2021-08-03 2305 cpus_read_unlock();
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2306 }
7a8e76a3829f10 Steven Rostedt 2008-09-29 2307
7a8e76a3829f10 Steven Rostedt 2008-09-29 2308 out:
659f451ff21315 Steven Rostedt 2012-05-14 2309 /*
659f451ff21315 Steven Rostedt 2012-05-14 2310 * The ring buffer resize can happen with the ring buffer
659f451ff21315 Steven Rostedt 2012-05-14 2311 * enabled, so that the update disturbs the tracing as little
659f451ff21315 Steven Rostedt 2012-05-14 2312 * as possible. But if the buffer is disabled, we do not need
659f451ff21315 Steven Rostedt 2012-05-14 2313 * to worry about that, and we can take the time to verify
659f451ff21315 Steven Rostedt 2012-05-14 2314 * that the buffer is not corrupt.
659f451ff21315 Steven Rostedt 2012-05-14 2315 */
659f451ff21315 Steven Rostedt 2012-05-14 2316 if (atomic_read(&buffer->record_disabled)) {
659f451ff21315 Steven Rostedt 2012-05-14 2317 atomic_inc(&buffer->record_disabled);
659f451ff21315 Steven Rostedt 2012-05-14 2318 /*
659f451ff21315 Steven Rostedt 2012-05-14 2319 * Even though the buffer was disabled, we must make sure
659f451ff21315 Steven Rostedt 2012-05-14 2320 * that it is truly disabled before calling rb_check_pages.
659f451ff21315 Steven Rostedt 2012-05-14 2321 * There could have been a race between checking
659f451ff21315 Steven Rostedt 2012-05-14 2322 * record_disable and incrementing it.
659f451ff21315 Steven Rostedt 2012-05-14 2323 */
7440172974e85b Paul E. McKenney 2018-11-06 2324 synchronize_rcu();
659f451ff21315 Steven Rostedt 2012-05-14 2325 for_each_buffer_cpu(buffer, cpu) {
659f451ff21315 Steven Rostedt 2012-05-14 2326 cpu_buffer = buffer->buffers[cpu];
659f451ff21315 Steven Rostedt 2012-05-14 2327 rb_check_pages(cpu_buffer);
659f451ff21315 Steven Rostedt 2012-05-14 2328 }
659f451ff21315 Steven Rostedt 2012-05-14 2329 atomic_dec(&buffer->record_disabled);
659f451ff21315 Steven Rostedt 2012-05-14 2330 }
659f451ff21315 Steven Rostedt 2012-05-14 2331
7a8e76a3829f10 Steven Rostedt 2008-09-29 2332 mutex_unlock(&buffer->mutex);
0a1754b2a97efa Qiujun Huang 2020-10-19 2333 return 0;
7a8e76a3829f10 Steven Rostedt 2008-09-29 2334
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2335 out_err:
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2336 for_each_buffer_cpu(buffer, cpu) {
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2337 struct buffer_page *bpage, *tmp;
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2338
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2339 cpu_buffer = buffer->buffers[cpu];
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2340 cpu_buffer->nr_pages_to_update = 0;
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2341
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2342 if (list_empty(&cpu_buffer->new_pages))
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2343 continue;
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2344
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2345 list_for_each_entry_safe(bpage, tmp, &cpu_buffer->new_pages,
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2346 list) {
044fa782ebb947 Steven Rostedt 2008-12-02 2347 list_del_init(&bpage->list);
044fa782ebb947 Steven Rostedt 2008-12-02 2348 free_buffer_page(bpage);
7a8e76a3829f10 Steven Rostedt 2008-09-29 2349 }
438ced1720b584 Vaibhav Nagarnaik 2012-02-02 2350 }
07b8b10ec94f85 Steven Rostedt (VMware 2020-03-27 2351) out_err_unlock:
641d2f63cfe245 Vegard Nossum 2008-11-18 2352 mutex_unlock(&buffer->mutex);
83f40318dab00e Vaibhav Nagarnaik 2012-05-03 2353 return err;
7a8e76a3829f10 Steven Rostedt 2008-09-29 2354 }
c4f50183f90fb1 Robert Richter 2008-12-11 2355 EXPORT_SYMBOL_GPL(ring_buffer_resize);
7a8e76a3829f10 Steven Rostedt 2008-09-29 2356
:::::: The code at line 2177 was first introduced by commit
:::::: ee51a1de7e3837577412be269e0100038068e691 tracing: fix mmiotrace resizing crash
:::::: TO: Ingo Molnar <mingo@elte.hu>
:::::: CC: Ingo Molnar <mingo@elte.hu>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2026-11-05 13:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-05 13:56 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-11-05 14:10 [android-common:android14-kiwi-6.1 390/390] kernel/trace/ring_buffer.c:2177 ring_buffer_resize() warn: variable dereferenced before check 'buffer' (see line 2172) Dan Carpenter
2026-11-06 4:41 kernel test robot
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=202611051422.WODTXWDt-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/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