From: Arnd Bergmann <arndbergmann@googlemail.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Arnd Bergmann <arndbergmann@googlemail.com>,
Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>,
Peter Zijlstra <peterz@infradead.org>,
Vincent Sanders <vince@simtec.co.uk>,
John Kacur <jkacur@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
Christoph Hellwig <hch@infradead.org>,
"Sven-Thorsten Dietrich" <sven@thebigcorporation.com>,
Alessio Igor Bogani <abogani@texware.it>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Greg KH <gregkh@suse.de>
Subject: Re: [patch 11/28] nvram: Drop the bkl from nvram_llseek()
Date: Tue, 13 Oct 2009 14:40:45 +0200 [thread overview]
Message-ID: <200910131440.45623.arnd@arndb.de> (raw)
In-Reply-To: <20091011221448.GA8146@nowhere>
On Monday 12 October 2009, Frederic Weisbecker wrote:
> On Sun, Oct 11, 2009 at 11:50:24PM +0200, Arnd Bergmann wrote:
> >
> > There are various *_operations structures that have a .ioctl pointer.
> > While there are a lot of struct file_operations with a locked .ioctl
> > operation, stuff like block_device_operations does not hold the
> > BKL in .ioctl but in .locked_ioctl.
>
> Oh right. Thanks for the tip.
>
FWIW, I've done a grep through the current source tree, this should be
the full list of all .ioctl methods in struct file_operations, a total
of 141 instances in 2.6.32-rc4.
When we do a pushdown of the BKL into these functions, we can kill off
the file operation.
Arnd <><
arch/blackfin/mach-bf561/coreb.c: .ioctl = coreb_ioctl,
arch/cris/arch-v10/drivers/ds1302.c: .ioctl = rtc_ioctl,
arch/cris/arch-v10/drivers/gpio.c: .ioctl = gpio_ioctl,
arch/cris/arch-v10/drivers/i2c.c: .ioctl = i2c_ioctl,
arch/cris/arch-v10/drivers/pcf8563.c: .ioctl = pcf8563_ioctl,
arch/cris/arch-v10/drivers/sync_serial.c: .ioctl = sync_serial_ioctl,
arch/cris/arch-v32/drivers/cryptocop.c: .ioctl = cryptocop_ioctl
arch/cris/arch-v32/drivers/i2c.c: .ioctl = i2c_ioctl,
arch/cris/arch-v32/drivers/mach-a3/gpio.c: .ioctl = gpio_ioctl,
arch/cris/arch-v32/drivers/mach-fs/gpio.c: .ioctl = gpio_ioctl,
arch/cris/arch-v32/drivers/pcf8563.c: .ioctl = pcf8563_ioctl
arch/cris/arch-v32/drivers/sync_serial.c: .ioctl = sync_serial_ioctl,
arch/ia64/kernel/perfmon.c: .ioctl = pfm_ioctl,
arch/ia64/sn/kernel/sn2/sn_hwperf.c: .ioctl = sn_hwperf_ioctl,
arch/m68k/bvme6000/rtc.c: .ioctl = rtc_ioctl,
arch/m68k/mvme16x/rtc.c: .ioctl = rtc_ioctl,
arch/powerpc/kernel/nvram_64.c: .ioctl = dev_nvram_ioctl,
arch/sh/boards/mach-landisk/gio.c: .ioctl = gio_ioctl, /* ioctl */
arch/um/drivers/harddog_kern.c: .ioctl = harddog_ioctl,
arch/um/drivers/hostaudio_kern.c: .ioctl = hostaudio_ioctl,
arch/um/drivers/mmapper_kern.c: .ioctl = mmapper_ioctl,
drivers/block/pktcdvd.c: .ioctl = pkt_ctl_ioctl,
drivers/bluetooth/hci_vhci.c: .ioctl = vhci_ioctl,
drivers/char/apm-emulation.c: .ioctl = apm_ioctl,
drivers/char/applicom.c: .ioctl = ac_ioctl,
drivers/char/ds1620.c: .ioctl = ds1620_ioctl,
drivers/char/dtlk.c: .ioctl = dtlk_ioctl,
drivers/char/nvram.c: .ioctl = nvram_ioctl,
drivers/char/generic_nvram.c: .ioctl = nvram_ioctl,
drivers/char/genrtc.c: .ioctl = gen_rtc_ioctl,
drivers/char/hpet.c: .ioctl = hpet_ioctl,
drivers/char/i8k.c: .ioctl = i8k_ioctl,
drivers/char/ipmi/ipmi_devintf.c: .ioctl = ipmi_ioctl,
drivers/char/ipmi/ipmi_watchdog.c: .ioctl = ipmi_ioctl,
drivers/char/istallion.c: .ioctl = stli_memioctl,
drivers/char/lp.c: .ioctl = lp_ioctl,
drivers/char/nwflash.c: .ioctl = flash_ioctl,
drivers/char/raw.c: .ioctl = raw_ioctl,
drivers/char/sonypi.c: .ioctl = sonypi_misc_ioctl,
drivers/char/stallion.c: .ioctl = stl_memioctl,
drivers/char/toshiba.c: .ioctl = tosh_ioctl,
drivers/gpu/drm/i810/i810_dma.c: .ioctl = drm_ioctl,
drivers/gpu/drm/i810/i810_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/i830/i830_dma.c: .ioctl = drm_ioctl,
drivers/gpu/drm/i830/i830_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/i915/i915_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/mga/mga_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/r128/r128_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/radeon/radeon_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/radeon/radeon_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/savage/savage_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/sis/sis_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/tdfx/tdfx_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/via/via_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/i810/i810_dma.c: .ioctl = drm_ioctl,
drivers/gpu/drm/i810/i810_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/i830/i830_dma.c: .ioctl = drm_ioctl,
drivers/gpu/drm/i830/i830_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/i915/i915_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/mga/mga_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/r128/r128_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/radeon/radeon_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/radeon/radeon_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/savage/savage_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/sis/sis_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/tdfx/tdfx_drv.c: .ioctl = drm_ioctl,
drivers/gpu/drm/via/via_drv.c: .ioctl = drm_ioctl,
drivers/hwmon/fschmd.c: .ioctl = watchdog_ioctl,
drivers/ide/ide-tape.c: .ioctl = idetape_chrdev_ioctl,
drivers/input/misc/hp_sdc_rtc.c: .ioctl = hp_sdc_rtc_ioctl,
drivers/isdn/capi/capi.c: .ioctl = capi_ioctl,
drivers/isdn/divert/divert_procfs.c: .ioctl = isdn_divert_ioctl,
drivers/isdn/i4l/isdn_common.c: .ioctl = isdn_ioctl,
drivers/isdn/mISDN/timerdev.c: .ioctl = mISDN_ioctl,
drivers/macintosh/ans-lcd.c: .ioctl = anslcd_ioctl,
drivers/macintosh/nvram.c: .ioctl = nvram_ioctl,
drivers/macintosh/via-pmu.c: .ioctl = pmu_ioctl,
drivers/media/dvb/dvb-core/dmxdev.c: .ioctl = dvb_demux_ioctl,
drivers/media/dvb/dvb-core/dmxdev.c: .ioctl = dvb_dvr_ioctl,
drivers/media/dvb/dvb-core/dvb_ca_en50221.c: .ioctl = dvb_ca_en50221_io_ioctl,
drivers/media/dvb/dvb-core/dvb_net.c: .ioctl = dvb_net_ioctl,
drivers/media/dvb/dvb-core/dvb_frontend.c: .ioctl = dvb_generic_ioctl,
drivers/media/dvb/firewire/firedtv-ci.c: .ioctl = dvb_generic_ioctl,
drivers/media/dvb/ttpci/av7110.c: .ioctl = dvb_generic_ioctl,
drivers/media/dvb/ttpci/av7110_av.c: .ioctl = dvb_generic_ioctl,
drivers/media/dvb/ttpci/av7110_av.c: .ioctl = dvb_generic_ioctl,
drivers/media/dvb/ttpci/av7110_ca.c: .ioctl = dvb_generic_ioctl,
drivers/message/i2o/i2o_config.c: .ioctl = i2o_cfg_ioctl,
drivers/mtd/mtdchar.c: .ioctl = mtd_ioctl,
drivers/net/wan/cosa.c: .ioctl = cosa_chardev_ioctl,
drivers/parisc/eisa_eeprom.c: .ioctl = eisa_eeprom_ioctl,
drivers/pcmcia/pcmcia_ioctl.c: .ioctl = ds_ioctl,
drivers/rtc/rtc-m41t80.c: .ioctl = wdt_ioctl,
drivers/s390/char/tape_char.c: .ioctl = tapechar_ioctl,
drivers/s390/char/vmwatchdog.c: .ioctl = &vmwdt_ioctl,
drivers/sbus/char/openprom.c: .ioctl = openprom_ioctl,
drivers/scsi/3w-9xxx.c: .ioctl = twa_chrdev_ioctl,
drivers/scsi/3w-xxxx.c: .ioctl = tw_chrdev_ioctl,
drivers/scsi/aacraid/linit.c: .ioctl = aac_cfg_ioctl,
drivers/scsi/dpt_i2o.c: .ioctl = adpt_ioctl,
drivers/scsi/gdth.c: .ioctl = gdth_ioctl,
drivers/scsi/megaraid.c: .ioctl = megadev_ioctl,
drivers/scsi/megaraid/megaraid_mm.c: .ioctl = mraid_mm_ioctl,
drivers/scsi/osst.c: .ioctl = osst_ioctl,
drivers/scsi/sg.c: .ioctl = sg_ioctl,
drivers/staging/comedi/comedi_fops.c: .ioctl = comedi_ioctl,
drivers/staging/poch/poch.c: .ioctl = poch_ioctl,
drivers/staging/sep/sep_driver.c: .ioctl = sep_ioctl,
drivers/staging/vme/devices/vme_user.c: .ioctl = vme_user_ioctl,
drivers/usb/core/devio.c: .ioctl = usbdev_ioctl,
drivers/usb/mon/mon_bin.c: .ioctl = mon_bin_ioctl,
fs/autofs/root.c: .ioctl = autofs_root_ioctl,
fs/autofs4/root.c: .ioctl = autofs4_root_ioctl,
fs/coda/pioctl.c: .ioctl = coda_pioctl,
fs/coda/psdev.c: .ioctl = coda_psdev_ioctl,
fs/ecryptfs/file.c: .ioctl = ecryptfs_ioctl,
fs/ecryptfs/file.c: .ioctl = ecryptfs_ioctl,
fs/fat/dir.c: .ioctl = fat_dir_ioctl,
fs/fat/file.c: .ioctl = fat_generic_ioctl,
fs/hfsplus/dir.c: .ioctl = hfsplus_ioctl,
fs/hfsplus/inode.c: .ioctl = hfsplus_ioctl,
fs/ncpfs/dir.c: .ioctl = ncp_ioctl,
fs/ncpfs/file.c: .ioctl = ncp_ioctl,
fs/reiserfs/dir.c: .ioctl = reiserfs_ioctl,
fs/reiserfs/file.c: .ioctl = reiserfs_ioctl,
fs/smbfs/dir.c: .ioctl = smb_ioctl,
fs/smbfs/file.c: .ioctl = smb_ioctl,
fs/udf/dir.c: .ioctl = udf_ioctl,
fs/udf/file.c: .ioctl = udf_ioctl,
net/sunrpc/cache.c: .ioctl = cache_ioctl_procfs, /* for FIONREAD */
net/sunrpc/cache.c: .ioctl = cache_ioctl_pipefs, /* for FIONREAD */
net/sunrpc/rpc_pipe.c: .ioctl = rpc_pipe_ioctl,
sound/oss/dmasound/dmasound_core.c: .ioctl = mixer_ioctl,
sound/oss/dmasound/dmasound_core.c: .ioctl = sq_ioctl,
sound/oss/msnd_pinnacle.c: .ioctl = dev_ioctl,
sound/oss/sh_dac_audio.c: .ioctl = dac_audio_ioctl,
sound/oss/soundcard.c: .ioctl = sound_ioctl,
sound/oss/swarm_cs4297a.c: .ioctl = cs4297a_ioctl_mixdev,
sound/oss/swarm_cs4297a.c: .ioctl = cs4297a_ioctl,
sound/oss/vwsnd.c: .ioctl = vwsnd_audio_ioctl,
sound/oss/vwsnd.c: .ioctl = vwsnd_mixer_ioctl,
next prev parent reply other threads:[~2009-10-13 12:41 UTC|newest]
Thread overview: 116+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-10 15:35 [patch 00/28] BKL removal queued patches Thomas Gleixner
2009-10-10 15:35 ` [patch 01/28] pm_qos: remove BKL Thomas Gleixner
2009-10-10 16:08 ` Frederic Weisbecker
2009-10-13 19:12 ` mgross
2009-10-13 19:21 ` Jonathan Corbet
2009-10-13 19:50 ` mgross
2009-10-14 15:44 ` [tip:bkl/core] " tip-bot for Jonathan Corbet
2009-10-10 15:35 ` [patch 02/28] pm_qos: clean up racy global "name" variable Thomas Gleixner
2009-10-10 19:54 ` John Kacur
2009-10-10 20:03 ` Jonathan Corbet
2009-10-10 20:09 ` Peter Zijlstra
2009-10-10 20:58 ` John Kacur
2009-10-14 15:44 ` [tip:bkl/core] " tip-bot for Jonathan Corbet
2009-10-10 15:35 ` [patch 03/28] net: Remove BKL from tun Thomas Gleixner
2009-10-14 8:19 ` David Miller
2009-10-10 15:35 ` [patch 04/28] x86: Remove BKL from microcode Thomas Gleixner
2009-10-14 15:14 ` [tip:x86/cleanups] " tip-bot for Thomas Gleixner
2009-10-10 15:35 ` [patch 05/28] drivers: Remove BKL from drivers/char/misc.c Thomas Gleixner
2009-10-11 19:24 ` Arnd Bergmann
2009-10-14 15:47 ` [tip:bkl/drivers] drivers: Remove BKL from misc_open tip-bot for Thomas Gleixner
2009-10-14 15:55 ` Arnd Bergmann
2009-10-14 16:07 ` Thomas Gleixner
2009-10-14 16:12 ` Alan Cox
2009-10-14 16:16 ` Thomas Gleixner
2009-10-14 16:54 ` Arnd Bergmann
2009-10-14 17:12 ` Arnd Bergmann
2009-10-14 19:38 ` Thomas Gleixner
2009-10-17 17:09 ` Pavel Machek
2009-10-14 18:12 ` Alan Cox
2009-10-14 19:34 ` Thomas Gleixner
2009-10-14 17:58 ` Ingo Molnar
2009-10-10 15:35 ` [patch 06/28] drivers: Remove BKL from cs5535_gpio Thomas Gleixner
2009-10-14 15:47 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:35 ` [patch 07/28] spi: Remove BKL from spidev_open Thomas Gleixner
2009-10-14 15:48 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:35 ` [patch 08/28] x86: Remove BKL from apm_32 Thomas Gleixner
2009-10-14 15:15 ` [tip:x86/cleanups] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 09/28] sys: Remove BKL from sys_reboot Thomas Gleixner
2009-10-14 15:44 ` [tip:bkl/core] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 10/28] mem_class: Drop the bkl from memory_open() Thomas Gleixner
2009-10-10 15:36 ` [patch 11/28] nvram: Drop the bkl from nvram_llseek() Thomas Gleixner
2009-10-11 19:31 ` Arnd Bergmann
2009-10-11 21:08 ` Frederic Weisbecker
2009-10-11 21:40 ` Frederic Weisbecker
2009-10-11 21:50 ` Arnd Bergmann
2009-10-11 22:14 ` Frederic Weisbecker
2009-10-13 12:40 ` Arnd Bergmann [this message]
2009-10-14 21:43 ` Thomas Gleixner
2009-10-11 22:12 ` [PATCH] generic_nvram: Turn nvram_ioctl into an unlocked ioctl Frederic Weisbecker
2009-10-11 22:25 ` Arnd Bergmann
2009-10-11 22:39 ` [PATCH v2] " Frederic Weisbecker
2009-10-11 22:40 ` [PATCH] " Frederic Weisbecker
2009-10-12 8:45 ` Arnd Bergmann
2009-10-10 15:36 ` [patch 12/28] nvram: Drop the bkl from non-generic nvram_llseek() Thomas Gleixner
2009-10-10 15:36 ` [patch 13/28] s390: Remove BKL from prng Thomas Gleixner
2009-10-13 12:36 ` Jan Glauber
2009-10-14 15:45 ` [tip:bkl/arch] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 14/28] um: Remove BKL from random Thomas Gleixner
2009-10-14 15:45 ` [tip:bkl/arch] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 15/28] um: Remove BKL from mmapper Thomas Gleixner
2009-10-14 15:45 ` [tip:bkl/arch] " tip-bot for Thomas Gleixner
2009-10-10 15:36 ` [patch 16/28] sparc: Remove BKL from apc Thomas Gleixner
2009-11-03 5:27 ` David Miller
2009-10-10 15:36 ` [patch 17/28] watchdog: Fix probe function of riowd Thomas Gleixner
2009-10-10 15:36 ` [patch 18/28] watchdog: Remove BKL from rio watchdog driver Thomas Gleixner
2009-11-03 5:16 ` David Miller
2009-10-10 15:36 ` [patch 19/28] hw_random: Remove BKL from core Thomas Gleixner
2009-10-14 15:49 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-21 20:51 ` [patch 19/28] " John Kacur
2009-10-10 15:36 ` [patch 20/28] input: Remove BKL from hp_sdc_rtc Thomas Gleixner
2009-10-11 19:47 ` Arnd Bergmann
2009-10-11 19:54 ` Thomas Gleixner
2009-10-14 15:49 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:37 ` [patch 21/28] bkl: pushdown BKL locking to do_sysctl() Thomas Gleixner
2009-10-11 9:03 ` Benjamin Herrenschmidt
2009-10-14 15:45 ` [tip:bkl/core] " tip-bot for Thomas Gleixner
2009-10-10 15:37 ` [patch 22/28] macintosh: Remove BKL from ans-lcd Thomas Gleixner
2009-10-10 21:14 ` John Kacur
2009-10-10 23:13 ` Alan Cox
2009-10-10 23:27 ` John Kacur
2009-10-11 9:02 ` Benjamin Herrenschmidt
2009-10-14 15:49 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-21 21:07 ` [PATCH] macintosh: Explicitly set llseek to no_llseek in ans-lcd John Kacur
2009-10-21 21:21 ` Frederic Weisbecker
2009-10-21 21:33 ` John Kacur
2009-10-21 21:45 ` Frederic Weisbecker
2009-10-21 21:53 ` John Kacur
2009-10-21 22:16 ` Frederic Weisbecker
2009-11-02 15:51 ` Arnd Bergmann
2009-11-16 10:54 ` Christoph Hellwig
2009-11-16 12:09 ` Arnd Bergmann
2009-10-10 15:37 ` [patch 23/28] i2c: Remove big kernel lock from i2cdev_open Thomas Gleixner
2009-10-10 17:04 ` Jean Delvare
2009-10-10 17:09 ` Thomas Gleixner
2009-10-10 17:39 ` Jean Delvare
2009-10-10 18:10 ` Thomas Gleixner
2009-10-10 18:15 ` Peter Zijlstra
2009-10-10 18:38 ` Thomas Gleixner
2009-10-10 15:37 ` [patch 24/28] rtc: Remove BKL from efirtc Thomas Gleixner
2009-10-14 15:50 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-21 21:13 ` Subject: [PATCH] rtc: Explicitly set llseek to no_llseek John Kacur
2009-11-03 23:48 ` Andrew Morton
2009-11-04 0:43 ` John Kacur
2009-10-10 15:37 ` [patch 25/28] parisc: Remove BKL from eisa_eeprom Thomas Gleixner
2009-10-14 15:50 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-14 17:35 ` [patch 25/28] " Kyle McMartin
2009-10-10 15:37 ` [patch 26/28] drivers: Remove BKL from pc8736x_gpio Thomas Gleixner
2009-10-14 15:50 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:37 ` [patch 27/28] drivers: Remove BKL from scx200_gpio Thomas Gleixner
2009-10-14 15:50 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 15:37 ` [patch 28/28] mips: Remove BKL from tb0219 Thomas Gleixner
2009-10-14 15:51 ` [tip:bkl/drivers] " tip-bot for Thomas Gleixner
2009-10-10 18:38 ` [patch 00/28] BKL removal queued patches John Kacur
2009-10-14 15:59 ` [PATCH 1/2] compat_ioctl: remove VT specific ioctl handlers Arnd Bergmann
2009-10-14 16:00 ` [PATCH 2/2] compat_ioctl: do not hold BKL in handlers Arnd Bergmann
2009-10-14 16:10 ` [PATCH 1/2] compat_ioctl: remove VT specific ioctl handlers Greg KH
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=200910131440.45623.arnd@arndb.de \
--to=arndbergmann@googlemail.com \
--cc=abogani@texware.it \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=corbet@lwn.net \
--cc=fweisbec@gmail.com \
--cc=gregkh@suse.de \
--cc=hch@infradead.org \
--cc=jkacur@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=sven@thebigcorporation.com \
--cc=tglx@linutronix.de \
--cc=vince@simtec.co.uk \
/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