From: Andreas Herrmann <andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> To: Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org> Cc: Varun Sethi <Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org>, "iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org" <iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>, "linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org" <linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org> Subject: [PATCH v3 02/11] iommu/arm-smmu: Introduce iommu_group notifier block Date: Mon, 20 Jan 2014 23:28:14 +0100 [thread overview] Message-ID: <20140120222814.GI3471@alberich> (raw) In-Reply-To: <1389876263-25759-3-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> At the moment just handle IOMMU_GROUP_NOTIFY_BIND_DRIVER to conditionally isolate all master devices for an SMMU. Depending on DT information each device is put into its own protection domain (if possible). For configuration with one or just a few masters per SMMU that is easy to achieve. In case of many devices per SMMU (e.g. MMU-500 with it's distributed translation support) isolation of each device might not be possible -- depending on number of available SMR groups and/or context banks. Default is that device isolation is contolled per SMMU with SMMU node property "arm,smmu-isolate-devices" in a DT. If this property is set for an SMMU node, device isolation is performed. W/o device isolation the driver detects SMMUs but no translation is configured (transactions just bypass translation process). Note that for device isolation dma_base and size are fixed as 0 and SZ_128M at the moment. Additional patches will address this restriction and allow automatic growth of mapping size. Cc: Varun Sethi <Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org> Cc: Andreas Herrmann <herrmann.der.user-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> Signed-off-by: Andreas Herrmann <andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> --- drivers/iommu/arm-smmu.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) Hi Will, This new patch addresses Varun's comments: - use iommu_group notifier instead of bus notifier - remove superfluous call to arm_smmu_add_device in notifier function This patch depends on commit "iommu/arm-smmu: add devices attached to the SMMU to an IOMMU group" as found in your git tree (e.g. in branch iommu/devel or for-joerg/arm-smmu/updates). Andreas PS: This time with a proper adaption of the notifier function. diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index 0a5649f..da19bd6 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c @@ -46,6 +46,7 @@ #include <linux/amba/bus.h> #include <asm/pgalloc.h> +#include <asm/dma-iommu.h> /* Driver options */ #define ARM_SMMU_OPT_ISOLATE_DEVICES (1 << 0) @@ -1517,6 +1518,47 @@ static int arm_smmu_domain_has_cap(struct iommu_domain *domain, return !!(cap & caps); } +static int arm_smmu_group_notifier(struct notifier_block *nb, + unsigned long action, void *data) +{ + struct device *dev = data; + struct dma_iommu_mapping *mapping; + struct arm_smmu_device *smmu; + int ret; + + switch (action) { + case IOMMU_GROUP_NOTIFY_BIND_DRIVER: + + smmu = dev->archdata.iommu; + if (!smmu || !(smmu->options & ARM_SMMU_OPT_ISOLATE_DEVICES)) + break; + + mapping = arm_iommu_create_mapping(&platform_bus_type, + 0, SZ_128M, 0); + if (IS_ERR(mapping)) { + ret = PTR_ERR(mapping); + dev_info(dev, "arm_iommu_create_mapping failed\n"); + break; + } + + ret = arm_iommu_attach_device(dev, mapping); + if (ret < 0) { + dev_info(dev, "arm_iommu_attach_device failed\n"); + arm_iommu_release_mapping(mapping); + } + + break; + default: + break; + } + + return 0; +} + +static struct notifier_block group_nb = { + .notifier_call = arm_smmu_group_notifier, +}; + static int arm_smmu_add_device(struct device *dev) { struct arm_smmu_device *child, *parent, *smmu; @@ -1566,6 +1608,8 @@ static int arm_smmu_add_device(struct device *dev) return PTR_ERR(group); } + iommu_group_register_notifier(group, &group_nb); + ret = iommu_group_add_device(group, dev); iommu_group_put(group); dev->archdata.iommu = smmu; -- 1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: andreas.herrmann@calxeda.com (Andreas Herrmann) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 02/11] iommu/arm-smmu: Introduce iommu_group notifier block Date: Mon, 20 Jan 2014 23:28:14 +0100 [thread overview] Message-ID: <20140120222814.GI3471@alberich> (raw) In-Reply-To: <1389876263-25759-3-git-send-email-andreas.herrmann@calxeda.com> At the moment just handle IOMMU_GROUP_NOTIFY_BIND_DRIVER to conditionally isolate all master devices for an SMMU. Depending on DT information each device is put into its own protection domain (if possible). For configuration with one or just a few masters per SMMU that is easy to achieve. In case of many devices per SMMU (e.g. MMU-500 with it's distributed translation support) isolation of each device might not be possible -- depending on number of available SMR groups and/or context banks. Default is that device isolation is contolled per SMMU with SMMU node property "arm,smmu-isolate-devices" in a DT. If this property is set for an SMMU node, device isolation is performed. W/o device isolation the driver detects SMMUs but no translation is configured (transactions just bypass translation process). Note that for device isolation dma_base and size are fixed as 0 and SZ_128M at the moment. Additional patches will address this restriction and allow automatic growth of mapping size. Cc: Varun Sethi <Varun.Sethi@freescale.com> Cc: Andreas Herrmann <herrmann.der.user@googlemail.com> Signed-off-by: Andreas Herrmann <andreas.herrmann@calxeda.com> --- drivers/iommu/arm-smmu.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) Hi Will, This new patch addresses Varun's comments: - use iommu_group notifier instead of bus notifier - remove superfluous call to arm_smmu_add_device in notifier function This patch depends on commit "iommu/arm-smmu: add devices attached to the SMMU to an IOMMU group" as found in your git tree (e.g. in branch iommu/devel or for-joerg/arm-smmu/updates). Andreas PS: This time with a proper adaption of the notifier function. diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index 0a5649f..da19bd6 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c @@ -46,6 +46,7 @@ #include <linux/amba/bus.h> #include <asm/pgalloc.h> +#include <asm/dma-iommu.h> /* Driver options */ #define ARM_SMMU_OPT_ISOLATE_DEVICES (1 << 0) @@ -1517,6 +1518,47 @@ static int arm_smmu_domain_has_cap(struct iommu_domain *domain, return !!(cap & caps); } +static int arm_smmu_group_notifier(struct notifier_block *nb, + unsigned long action, void *data) +{ + struct device *dev = data; + struct dma_iommu_mapping *mapping; + struct arm_smmu_device *smmu; + int ret; + + switch (action) { + case IOMMU_GROUP_NOTIFY_BIND_DRIVER: + + smmu = dev->archdata.iommu; + if (!smmu || !(smmu->options & ARM_SMMU_OPT_ISOLATE_DEVICES)) + break; + + mapping = arm_iommu_create_mapping(&platform_bus_type, + 0, SZ_128M, 0); + if (IS_ERR(mapping)) { + ret = PTR_ERR(mapping); + dev_info(dev, "arm_iommu_create_mapping failed\n"); + break; + } + + ret = arm_iommu_attach_device(dev, mapping); + if (ret < 0) { + dev_info(dev, "arm_iommu_attach_device failed\n"); + arm_iommu_release_mapping(mapping); + } + + break; + default: + break; + } + + return 0; +} + +static struct notifier_block group_nb = { + .notifier_call = arm_smmu_group_notifier, +}; + static int arm_smmu_add_device(struct device *dev) { struct arm_smmu_device *child, *parent, *smmu; @@ -1566,6 +1608,8 @@ static int arm_smmu_add_device(struct device *dev) return PTR_ERR(group); } + iommu_group_register_notifier(group, &group_nb); + ret = iommu_group_add_device(group, dev); iommu_group_put(group); dev->archdata.iommu = smmu; -- 1.7.9.5
next prev parent reply other threads:[~2014-01-20 22:28 UTC|newest] Thread overview: 134+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-01-16 12:44 [PATCH v4 0/11] iommu/arm-smmu: Misc modifications to support SMMUs on Calxeda ECX-2000 Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-1-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-16 12:44 ` [PATCH 01/11] iommu/arm-smmu: Introduce driver option handling Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-2-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-22 11:51 ` Will Deacon 2014-01-22 11:51 ` Will Deacon [not found] ` <20140122115143.GI1621-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-23 20:16 ` Andreas Herrmann 2014-01-23 20:16 ` Andreas Herrmann 2014-01-16 12:44 ` [PATCH 02/11] iommu/arm-smmu: Introduce bus notifier block Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-3-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-18 20:59 ` Varun Sethi 2014-01-18 20:59 ` Varun Sethi [not found] ` <419c2609cab14842b5258f7048ce6d43-AZ66ij2kwaacCcN9WK45f+O6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-01-20 21:29 ` Andreas Herrmann 2014-01-20 21:29 ` Andreas Herrmann 2014-01-20 21:53 ` [PATCH v2 02/11] iommu/arm-smmu: Introduce iommu_group " Andreas Herrmann 2014-01-20 21:53 ` Andreas Herrmann 2014-01-20 21:56 ` Andreas Herrmann 2014-01-20 21:56 ` Andreas Herrmann 2014-01-20 22:28 ` Andreas Herrmann [this message] 2014-01-20 22:28 ` [PATCH v3 " Andreas Herrmann 2014-01-21 17:48 ` Varun Sethi 2014-01-21 17:48 ` Varun Sethi [not found] ` <e92c5fd617fb4068b4ec5de696527ee3-AZ66ij2kwaacCcN9WK45f+O6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-01-22 12:25 ` Will Deacon 2014-01-22 12:25 ` Will Deacon [not found] ` <20140122122550.GA14108-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-22 13:14 ` Varun Sethi 2014-01-22 13:14 ` Varun Sethi 2014-01-22 13:40 ` Will Deacon 2014-01-22 13:40 ` Will Deacon [not found] ` <20140122134028.GB14108-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-22 13:54 ` Varun Sethi 2014-01-22 13:54 ` Varun Sethi [not found] ` <aeebc7cf4084486790a5166cf83cb332-AZ66ij2kwaacCcN9WK45f+O6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-01-22 15:33 ` Will Deacon 2014-01-22 15:33 ` Will Deacon [not found] ` <20140122153352.GE14108-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-22 19:07 ` Varun Sethi 2014-01-22 19:07 ` Varun Sethi [not found] ` <3d0a888e122f490ba6bbc80b1aaa977c-AZ66ij2kwaacCcN9WK45f+O6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-01-23 19:57 ` Andreas Herrmann 2014-01-23 19:57 ` Andreas Herrmann 2014-01-28 11:00 ` Varun Sethi 2014-01-28 11:00 ` Varun Sethi [not found] ` <991cc0024ea54cdb964f31de89c0b0ea-AZ66ij2kwaacCcN9WK45f+O6mTEJWrR4XA4E9RH9d+qIuWR1G4zioA@public.gmane.org> 2014-01-29 14:14 ` Andreas Herrmann 2014-01-29 14:14 ` Andreas Herrmann 2014-01-29 19:19 ` Varun Sethi 2014-01-29 19:19 ` Varun Sethi 2014-01-23 19:24 ` Andreas Herrmann 2014-01-23 19:24 ` Andreas Herrmann 2014-01-24 9:48 ` Andreas Herrmann 2014-01-24 9:48 ` Andreas Herrmann 2014-01-16 12:44 ` [PATCH 03/11] iommu/arm-smmu: Support buggy implementation where all config accesses are secure Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann 2014-01-16 12:44 ` [PATCH 04/11] iommu/arm-smmu: Introduce automatic stream-id-masking Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-5-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-22 15:26 ` Will Deacon 2014-01-22 15:26 ` Will Deacon [not found] ` <20140122152622.GD14108-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-22 20:15 ` Andreas Herrmann 2014-01-22 20:15 ` Andreas Herrmann 2014-01-16 12:44 ` [PATCH 05/11] iommu/arm-smmu: Check for duplicate stream IDs when registering master devices Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-6-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-22 15:53 ` Will Deacon 2014-01-22 15:53 ` Will Deacon [not found] ` <20140122155302.GF14108-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-23 21:17 ` Andreas Herrmann 2014-01-23 21:17 ` Andreas Herrmann 2014-01-16 12:44 ` [PATCH 06/11] documentation/iommu: Update description of ARM System MMU binding Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-7-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-16 14:31 ` Rob Herring 2014-01-16 14:31 ` Rob Herring 2014-01-16 12:44 ` [PATCH 07/11] iommu/arm-smmu: Set MAX_MASTER_STREAMIDS to MAX_PHANDLE_ARGS Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann 2014-01-16 12:44 ` [PATCH 08/11] of: Increase MAX_PHANDLE_ARGS Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-9-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-16 14:25 ` Rob Herring 2014-01-16 14:25 ` Rob Herring [not found] ` <CAL_Jsq+fDUYne1OQAd4AeQw-JAoFBf0TCv4YVpy6Vt_UmdkA8A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-01-17 11:00 ` Andreas Herrmann 2014-01-17 11:00 ` Andreas Herrmann 2014-01-17 11:08 ` [PATCH v2 " Andreas Herrmann 2014-01-17 11:08 ` Andreas Herrmann 2014-01-29 16:11 ` Suravee Suthikulanit 2014-01-29 16:11 ` Suravee Suthikulanit [not found] ` < CAL_JsqLhzp5jUJPA91rNkQ07kCDYCDZLxw8LxxFEVP9b12e1Jw@mail.gmail.com> [not found] ` <52E92842.3000001-5C7GfCeVMHo@public.gmane.org> 2014-01-29 16:57 ` Rob Herring 2014-01-29 16:57 ` Rob Herring [not found] ` <CAL_JsqLhzp5jUJPA91rNkQ07kCDYCDZLxw8LxxFEVP9b12e1Jw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-01-29 16:59 ` Suravee Suthikulanit 2014-01-29 16:59 ` Suravee Suthikulanit [not found] ` <52E93360.1000904-5C7GfCeVMHo@public.gmane.org> 2014-01-29 17:16 ` Andreas Herrmann 2014-01-29 17:16 ` Andreas Herrmann 2014-01-29 17:26 ` Suravee Suthikulanit 2014-01-29 17:26 ` Suravee Suthikulanit [not found] ` <52E939CB.1020705-5C7GfCeVMHo@public.gmane.org> 2014-01-29 17:29 ` Will Deacon 2014-01-29 17:29 ` Will Deacon [not found] ` <20140129172932.GQ26622-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-29 17:57 ` Suravee Suthikulanit 2014-01-29 17:57 ` Suravee Suthikulanit [not found] ` <52E940FC.9050602-5C7GfCeVMHo@public.gmane.org> 2014-01-29 18:03 ` Will Deacon 2014-01-29 18:03 ` Will Deacon [not found] ` <20140129180350.GS26622-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-30 22:53 ` Suravee Suthikulanit 2014-01-30 22:53 ` Suravee Suthikulanit [not found] ` <52EAD7EF.3040305-5C7GfCeVMHo@public.gmane.org> 2014-01-31 0:18 ` Will Deacon 2014-01-31 0:18 ` Will Deacon 2014-01-30 17:45 ` Andreas Herrmann 2014-01-30 17:45 ` Andreas Herrmann 2014-01-31 16:24 ` Rob Herring 2014-01-31 16:24 ` Rob Herring [not found] ` <CAL_Jsq+=dm4kPk=e0h_up9=wvED4fd3MBtSNFxm2NEz_yag-uA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-02-03 16:44 ` Will Deacon 2014-02-03 16:44 ` Will Deacon 2014-02-04 17:33 ` Grant Likely 2014-02-04 17:33 ` Grant Likely 2014-02-04 17:36 ` Grant Likely 2014-02-04 17:36 ` Grant Likely 2014-01-16 12:44 ` [PATCH 09/11] ARM: dts: Add nodes for SMMUs on Calxeda ECX-2000 Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-10-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-16 14:30 ` Rob Herring 2014-01-16 14:30 ` Rob Herring [not found] ` <CAL_JsqK2JUBEvCb-=eHFE_T=2AD0K_+V=NAeijzK2DrCwkaCOA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-01-17 11:01 ` Andreas Herrmann 2014-01-17 11:01 ` Andreas Herrmann 2014-01-17 11:16 ` [PATCH v2 " Andreas Herrmann 2014-01-17 11:16 ` Andreas Herrmann 2014-01-16 12:44 ` [PATCH 10/11] arm: dma-mapping: Add additional parameters to arm_iommu_create_mapping Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-11-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-22 16:01 ` Will Deacon 2014-01-22 16:01 ` Will Deacon 2014-01-16 12:44 ` [PATCH 11/11] arm: dma-mapping: Add support to extend DMA IOMMU mappings Andreas Herrmann 2014-01-16 12:44 ` Andreas Herrmann [not found] ` <1389876263-25759-12-git-send-email-andreas.herrmann-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org> 2014-01-22 16:10 ` Will Deacon 2014-01-22 16:10 ` Will Deacon [not found] ` <20140122161010.GH14108-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-23 21:50 ` Andreas Herrmann 2014-01-23 21:50 ` Andreas Herrmann 2014-01-29 10:57 ` Marek Szyprowski 2014-01-29 10:57 ` Marek Szyprowski [not found] ` <52E8DE7D.5020801-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> 2014-01-29 11:05 ` Will Deacon 2014-01-29 11:05 ` Will Deacon [not found] ` <20140129110537.GG26622-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org> 2014-01-29 14:40 ` Andreas Herrmann 2014-01-29 14:40 ` Andreas Herrmann 2014-01-30 8:28 ` Marek Szyprowski 2014-01-30 8:28 ` Marek Szyprowski [not found] ` <52EA0D43.1010802-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> 2014-01-30 8:44 ` Andreas Herrmann 2014-01-30 8:44 ` Andreas Herrmann 2014-01-31 17:23 ` [PATCH] " Andreas Herrmann 2014-01-31 17:23 ` Andreas Herrmann
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=20140120222814.GI3471@alberich \ --to=andreas.herrmann-bsgfqqb8/dxbdgjk7y7tuq@public.gmane.org \ --cc=Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org \ --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=will.deacon-5wv7dgnIgG8@public.gmane.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: linkBe 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.