From: Maximilian Luz <luzmaximilian@gmail.com>
To: Kurt Borja <kuurtb@gmail.com>, platform-driver-x86@vger.kernel.org
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
"Len Brown" <lenb@kernel.org>,
linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
"Mario Limonciello" <mario.limonciello@amd.com>,
"Armin Wolf" <W_Armin@gmx.de>,
"Joshua Grisham" <josh@joshuagrisham.com>,
"Derek J. Clark" <derekjohn.clark@gmail.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Lee, Chun-Yi" <jlee@suse.com>,
"Shyam Sundar S K" <Shyam-sundar.S-k@amd.com>,
"Corentin Chary" <corentin.chary@gmail.com>,
"Luke D. Jones" <luke@ljones.dev>,
"Lyndon Sanche" <lsanche@lyndeno.ca>,
"Ike Panhc" <ike.pan@canonical.com>,
"Henrique de Moraes Holschuh" <hmh@hmh.eng.br>,
"Mark Pearson" <mpearson-lenovo@squebb.ca>,
"Alexis Belmonte" <alexbelm48@gmail.com>,
"Ai Chao" <aichao@kylinos.cn>, "Gergo Koteles" <soyer@irl.hu>,
Dell.Client.Kernel@dell.com,
ibm-acpi-devel@lists.sourceforge.net
Subject: Re: [PATCH v4 03/19] ACPI: platform_profile: Remove platform_profile_handler from callbacks
Date: Sun, 19 Jan 2025 15:57:51 +0100 [thread overview]
Message-ID: <ed32abca-5d38-4ef4-aafb-fd047732920f@gmail.com> (raw)
In-Reply-To: <20250116002721.75592-4-kuurtb@gmail.com>
On 1/16/25 1:27 AM, Kurt Borja wrote:
> Devices can now set drvdata to the class device, thus passing the
> platform_profile_handler to callbacks is unnecessary. Instead pass the
> class device.
>
> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
> Signed-off-by: Kurt Borja <kuurtb@gmail.com>
Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com>
> ---
> drivers/acpi/platform_profile.c | 4 ++--
> .../platform/surface/surface_platform_profile.c | 8 ++++----
> drivers/platform/x86/acer-wmi.c | 4 ++--
> drivers/platform/x86/amd/pmf/sps.c | 8 ++++----
> drivers/platform/x86/asus-wmi.c | 8 ++++----
> drivers/platform/x86/dell/alienware-wmi.c | 4 ++--
> drivers/platform/x86/dell/dell-pc.c | 4 ++--
> drivers/platform/x86/hp/hp-wmi.c | 14 +++++++-------
> drivers/platform/x86/ideapad-laptop.c | 8 ++++----
> drivers/platform/x86/inspur_platform_profile.c | 8 ++++----
> drivers/platform/x86/thinkpad_acpi.c | 4 ++--
> include/linux/platform_profile.h | 6 ++----
> 12 files changed, 39 insertions(+), 41 deletions(-)
>
> diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
> index 689541d2e66c..bd90aa4e8371 100644
> --- a/drivers/acpi/platform_profile.c
> +++ b/drivers/acpi/platform_profile.c
> @@ -65,7 +65,7 @@ static int _store_class_profile(struct device *dev, void *data)
> if (!test_bit(*bit, handler->choices))
> return -EOPNOTSUPP;
>
> - return handler->profile_set(handler, *bit);
> + return handler->profile_set(dev, *bit);
> }
>
> /**
> @@ -102,7 +102,7 @@ static int get_class_profile(struct device *dev,
>
> lockdep_assert_held(&profile_lock);
> handler = to_pprof_handler(dev);
> - err = handler->profile_get(handler, &val);
> + err = handler->profile_get(dev, &val);
> if (err) {
> pr_err("Failed to get profile for handler %s\n", handler->name);
> return err;
> diff --git a/drivers/platform/surface/surface_platform_profile.c b/drivers/platform/surface/surface_platform_profile.c
> index edb9362003a4..26c1230e75df 100644
> --- a/drivers/platform/surface/surface_platform_profile.c
> +++ b/drivers/platform/surface/surface_platform_profile.c
> @@ -154,14 +154,14 @@ static int convert_profile_to_ssam_fan(struct ssam_device *sdev, enum platform_p
> }
> }
>
> -static int ssam_platform_profile_get(struct platform_profile_handler *pprof,
> +static int ssam_platform_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> struct ssam_platform_profile_device *tpd;
> enum ssam_tmp_profile tp;
> int status;
>
> - tpd = dev_get_drvdata(&pprof->class_dev);
> + tpd = dev_get_drvdata(dev);
>
> status = ssam_tmp_profile_get(tpd->sdev, &tp);
> if (status)
> @@ -175,13 +175,13 @@ static int ssam_platform_profile_get(struct platform_profile_handler *pprof,
> return 0;
> }
>
> -static int ssam_platform_profile_set(struct platform_profile_handler *pprof,
> +static int ssam_platform_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> struct ssam_platform_profile_device *tpd;
> int tp;
>
> - tpd = dev_get_drvdata(&pprof->class_dev);
> + tpd = dev_get_drvdata(dev);
>
> tp = convert_profile_to_ssam_tmp(tpd->sdev, profile);
> if (tp < 0)
> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> index 1aedf0ef4189..c68c0d744a69 100644
> --- a/drivers/platform/x86/acer-wmi.c
> +++ b/drivers/platform/x86/acer-wmi.c
> @@ -1950,7 +1950,7 @@ static int acer_toggle_turbo(void)
> }
>
> static int
> -acer_predator_v4_platform_profile_get(struct platform_profile_handler *pprof,
> +acer_predator_v4_platform_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> u8 tp;
> @@ -1984,7 +1984,7 @@ acer_predator_v4_platform_profile_get(struct platform_profile_handler *pprof,
> }
>
> static int
> -acer_predator_v4_platform_profile_set(struct platform_profile_handler *pprof,
> +acer_predator_v4_platform_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> int err, tp;
> diff --git a/drivers/platform/x86/amd/pmf/sps.c b/drivers/platform/x86/amd/pmf/sps.c
> index 259a598acd3e..cf2e51f67787 100644
> --- a/drivers/platform/x86/amd/pmf/sps.c
> +++ b/drivers/platform/x86/amd/pmf/sps.c
> @@ -282,10 +282,10 @@ bool is_pprof_balanced(struct amd_pmf_dev *pmf)
> return (pmf->current_profile == PLATFORM_PROFILE_BALANCED) ? true : false;
> }
>
> -static int amd_pmf_profile_get(struct platform_profile_handler *pprof,
> +static int amd_pmf_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> - struct amd_pmf_dev *pmf = dev_get_drvdata(&pprof->class_dev);
> + struct amd_pmf_dev *pmf = dev_get_drvdata(dev);
>
> *profile = pmf->current_profile;
> return 0;
> @@ -363,10 +363,10 @@ int amd_pmf_power_slider_update_event(struct amd_pmf_dev *dev)
> return 0;
> }
>
> -static int amd_pmf_profile_set(struct platform_profile_handler *pprof,
> +static int amd_pmf_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> - struct amd_pmf_dev *pmf = dev_get_drvdata(&pprof->class_dev);
> + struct amd_pmf_dev *pmf = dev_get_drvdata(dev);
> int ret = 0;
>
> pmf->current_profile = profile;
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index f91099792cb9..6b8b30551d36 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -3800,13 +3800,13 @@ static ssize_t throttle_thermal_policy_store(struct device *dev,
> static DEVICE_ATTR_RW(throttle_thermal_policy);
>
> /* Platform profile ***********************************************************/
> -static int asus_wmi_platform_profile_get(struct platform_profile_handler *pprof,
> +static int asus_wmi_platform_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> struct asus_wmi *asus;
> int tp;
>
> - asus = dev_get_drvdata(&pprof->class_dev);
> + asus = dev_get_drvdata(dev);
> tp = asus->throttle_thermal_policy_mode;
>
> switch (tp) {
> @@ -3826,13 +3826,13 @@ static int asus_wmi_platform_profile_get(struct platform_profile_handler *pprof,
> return 0;
> }
>
> -static int asus_wmi_platform_profile_set(struct platform_profile_handler *pprof,
> +static int asus_wmi_platform_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> struct asus_wmi *asus;
> int tp;
>
> - asus = dev_get_drvdata(&pprof->class_dev);
> + asus = dev_get_drvdata(dev);
>
> switch (profile) {
> case PLATFORM_PROFILE_PERFORMANCE:
> diff --git a/drivers/platform/x86/dell/alienware-wmi.c b/drivers/platform/x86/dell/alienware-wmi.c
> index 154c417a438c..0346f8e88bf8 100644
> --- a/drivers/platform/x86/dell/alienware-wmi.c
> +++ b/drivers/platform/x86/dell/alienware-wmi.c
> @@ -1026,7 +1026,7 @@ static int wmax_game_shift_status(u8 operation, u32 *out_data)
> return 0;
> }
>
> -static int thermal_profile_get(struct platform_profile_handler *pprof,
> +static int thermal_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> u32 out_data;
> @@ -1052,7 +1052,7 @@ static int thermal_profile_get(struct platform_profile_handler *pprof,
> return 0;
> }
>
> -static int thermal_profile_set(struct platform_profile_handler *pprof,
> +static int thermal_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> if (quirks->gmode) {
> diff --git a/drivers/platform/x86/dell/dell-pc.c b/drivers/platform/x86/dell/dell-pc.c
> index 1a0a721d706f..c86b05b5a1cb 100644
> --- a/drivers/platform/x86/dell/dell-pc.c
> +++ b/drivers/platform/x86/dell/dell-pc.c
> @@ -185,7 +185,7 @@ static int thermal_set_mode(enum thermal_mode_bits state)
> return dell_send_request(&buffer, CLASS_INFO, SELECT_THERMAL_MANAGEMENT);
> }
>
> -static int thermal_platform_profile_set(struct platform_profile_handler *pprof,
> +static int thermal_platform_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> switch (profile) {
> @@ -202,7 +202,7 @@ static int thermal_platform_profile_set(struct platform_profile_handler *pprof,
> }
> }
>
> -static int thermal_platform_profile_get(struct platform_profile_handler *pprof,
> +static int thermal_platform_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> int ret;
> diff --git a/drivers/platform/x86/hp/hp-wmi.c b/drivers/platform/x86/hp/hp-wmi.c
> index 8e5e1422e024..b8e62dc9cecd 100644
> --- a/drivers/platform/x86/hp/hp-wmi.c
> +++ b/drivers/platform/x86/hp/hp-wmi.c
> @@ -1221,7 +1221,7 @@ static int platform_profile_omen_get_ec(enum platform_profile_option *profile)
> return 0;
> }
>
> -static int platform_profile_omen_get(struct platform_profile_handler *pprof,
> +static int platform_profile_omen_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> /*
> @@ -1318,7 +1318,7 @@ static int platform_profile_omen_set_ec(enum platform_profile_option profile)
> return 0;
> }
>
> -static int platform_profile_omen_set(struct platform_profile_handler *pprof,
> +static int platform_profile_omen_set(struct device *dev,
> enum platform_profile_option profile)
> {
> int err;
> @@ -1345,7 +1345,7 @@ static int thermal_profile_set(int thermal_profile)
> sizeof(thermal_profile), 0);
> }
>
> -static int hp_wmi_platform_profile_get(struct platform_profile_handler *pprof,
> +static int hp_wmi_platform_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> int tp;
> @@ -1374,7 +1374,7 @@ static int hp_wmi_platform_profile_get(struct platform_profile_handler *pprof,
> return 0;
> }
>
> -static int hp_wmi_platform_profile_set(struct platform_profile_handler *pprof,
> +static int hp_wmi_platform_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> int err, tp;
> @@ -1440,11 +1440,11 @@ static int platform_profile_victus_get_ec(enum platform_profile_option *profile)
> return 0;
> }
>
> -static int platform_profile_victus_get(struct platform_profile_handler *pprof,
> +static int platform_profile_victus_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> /* Same behaviour as platform_profile_omen_get */
> - return platform_profile_omen_get(pprof, profile);
> + return platform_profile_omen_get(dev, profile);
> }
>
> static int platform_profile_victus_set_ec(enum platform_profile_option profile)
> @@ -1472,7 +1472,7 @@ static int platform_profile_victus_set_ec(enum platform_profile_option profile)
> return 0;
> }
>
> -static int platform_profile_victus_set(struct platform_profile_handler *pprof,
> +static int platform_profile_victus_set(struct device *dev,
> enum platform_profile_option profile)
> {
> int err;
> diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
> index ed0d880a07a9..fc317f42bb82 100644
> --- a/drivers/platform/x86/ideapad-laptop.c
> +++ b/drivers/platform/x86/ideapad-laptop.c
> @@ -933,10 +933,10 @@ static int convert_profile_to_dytc(enum platform_profile_option profile, int *pe
> * dytc_profile_get: Function to register with platform_profile
> * handler. Returns current platform profile.
> */
> -static int dytc_profile_get(struct platform_profile_handler *pprof,
> +static int dytc_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> - struct ideapad_dytc_priv *dytc = dev_get_drvdata(&pprof->class_dev);
> + struct ideapad_dytc_priv *dytc = dev_get_drvdata(dev);
>
> *profile = dytc->current_profile;
> return 0;
> @@ -986,10 +986,10 @@ static int dytc_cql_command(struct ideapad_private *priv, unsigned long cmd,
> * dytc_profile_set: Function to register with platform_profile
> * handler. Sets current platform profile.
> */
> -static int dytc_profile_set(struct platform_profile_handler *pprof,
> +static int dytc_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> - struct ideapad_dytc_priv *dytc = dev_get_drvdata(&pprof->class_dev);
> + struct ideapad_dytc_priv *dytc = dev_get_drvdata(dev);
> struct ideapad_private *priv = dytc->priv;
> unsigned long output;
> int err;
> diff --git a/drivers/platform/x86/inspur_platform_profile.c b/drivers/platform/x86/inspur_platform_profile.c
> index 471fca50d1c9..47d2dbbf3392 100644
> --- a/drivers/platform/x86/inspur_platform_profile.c
> +++ b/drivers/platform/x86/inspur_platform_profile.c
> @@ -84,10 +84,10 @@ static int inspur_wmi_perform_query(struct wmi_device *wdev,
> * 0x0: No Error
> * 0x1: Error
> */
> -static int inspur_platform_profile_set(struct platform_profile_handler *pprof,
> +static int inspur_platform_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> - struct inspur_wmi_priv *priv = dev_get_drvdata(&pprof->class_dev);
> + struct inspur_wmi_priv *priv = dev_get_drvdata(dev);
> u8 ret_code[4] = {0, 0, 0, 0};
> int ret;
>
> @@ -131,10 +131,10 @@ static int inspur_platform_profile_set(struct platform_profile_handler *pprof,
> * 0x1: Performance Mode
> * 0x2: Power Saver Mode
> */
> -static int inspur_platform_profile_get(struct platform_profile_handler *pprof,
> +static int inspur_platform_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> - struct inspur_wmi_priv *priv = dev_get_drvdata(&pprof->class_dev);
> + struct inspur_wmi_priv *priv = dev_get_drvdata(dev);
> u8 ret_code[4] = {0, 0, 0, 0};
> int ret;
>
> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> index 8be3f4e5366d..0abe22228fdb 100644
> --- a/drivers/platform/x86/thinkpad_acpi.c
> +++ b/drivers/platform/x86/thinkpad_acpi.c
> @@ -10415,7 +10415,7 @@ static int convert_profile_to_dytc(enum platform_profile_option profile, int *pe
> * dytc_profile_get: Function to register with platform_profile
> * handler. Returns current platform profile.
> */
> -static int dytc_profile_get(struct platform_profile_handler *pprof,
> +static int dytc_profile_get(struct device *dev,
> enum platform_profile_option *profile)
> {
> *profile = dytc_current_profile;
> @@ -10490,7 +10490,7 @@ static int dytc_cql_command(int command, int *output)
> * dytc_profile_set: Function to register with platform_profile
> * handler. Sets current platform profile.
> */
> -static int dytc_profile_set(struct platform_profile_handler *pprof,
> +static int dytc_profile_set(struct device *dev,
> enum platform_profile_option profile)
> {
> int perfmode;
> diff --git a/include/linux/platform_profile.h b/include/linux/platform_profile.h
> index 1c8fdda51eaa..5296d886c243 100644
> --- a/include/linux/platform_profile.h
> +++ b/include/linux/platform_profile.h
> @@ -34,10 +34,8 @@ struct platform_profile_handler {
> struct device class_dev;
> int minor;
> unsigned long choices[BITS_TO_LONGS(PLATFORM_PROFILE_LAST)];
> - int (*profile_get)(struct platform_profile_handler *pprof,
> - enum platform_profile_option *profile);
> - int (*profile_set)(struct platform_profile_handler *pprof,
> - enum platform_profile_option profile);
> + int (*profile_get)(struct device *dev, enum platform_profile_option *profile);
> + int (*profile_set)(struct device *dev, enum platform_profile_option profile);
> };
>
> int platform_profile_register(struct platform_profile_handler *pprof, void *drvdata);
next prev parent reply other threads:[~2025-01-19 14:57 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-16 0:27 [PATCH v4 00/19] Hide platform_profile_handler from consumers Kurt Borja
2025-01-16 0:27 ` [PATCH v4 01/19] ACPI: platform_profile: Replace *class_dev member with class_dev Kurt Borja
2025-01-16 0:27 ` [PATCH v4 02/19] ACPI: platform_profile: Let drivers set drvdata to the class device Kurt Borja
2025-01-19 14:55 ` Maximilian Luz
2025-01-16 0:27 ` [PATCH v4 03/19] ACPI: platform_profile: Remove platform_profile_handler from callbacks Kurt Borja
2025-01-19 14:57 ` Maximilian Luz [this message]
2025-01-16 0:27 ` [PATCH v4 04/19] ACPI: platform_profile: Add `ops` member to handlers Kurt Borja
2025-01-19 14:58 ` Maximilian Luz
2025-01-16 0:27 ` [PATCH v4 05/19] ACPI: platform_profile: Add `probe` to platform_profile_ops Kurt Borja
2025-01-19 15:00 ` Maximilian Luz
2025-01-16 0:27 ` [PATCH v4 06/19] platform/surface: surface_platform_profile: Use devm_platform_profile_register() Kurt Borja
2025-01-19 15:01 ` Maximilian Luz
2025-01-16 0:27 ` [PATCH v4 07/19] platform/x86: acer-wmi: " Kurt Borja
2025-01-16 0:27 ` [PATCH v4 08/19] platform/x86: amd: pmf: sps: " Kurt Borja
2025-01-16 0:27 ` [PATCH v4 09/19] platform/x86: asus-wmi: " Kurt Borja
2025-01-16 0:27 ` [PATCH v4 10/19] platform/x86: dell-pc: " Kurt Borja
2025-01-16 0:27 ` [PATCH v4 11/19] platform/x86: ideapad-laptop: " Kurt Borja
2025-01-16 0:27 ` [PATCH v4 12/19] platform/x86: hp-wmi: " Kurt Borja
2025-01-16 0:27 ` [PATCH v4 13/19] platform/x86: inspur_platform_profile: " Kurt Borja
2025-01-16 0:27 ` [PATCH v4 14/19] platform/x86: thinkpad_acpi: " Kurt Borja
2025-01-16 0:27 ` [PATCH v4 15/19] ACPI: platform_profile: Remove platform_profile_handler from exported symbols Kurt Borja
2025-01-19 15:04 ` Maximilian Luz
2025-01-16 0:27 ` [PATCH v4 16/19] ACPI: platform_profile: Move platform_profile_handler Kurt Borja
2025-01-16 0:27 ` [PATCH v4 17/19] ACPI: platform_profile: Clean platform_profile_handler Kurt Borja
2025-01-16 0:27 ` [PATCH v4 18/19] ACPI: platform_profile: Add documentation Kurt Borja
2025-01-16 0:27 ` [PATCH v4 19/19] ACPI: platform_profile: Add a prefix to log messages Kurt Borja
2025-01-16 16:09 ` [PATCH v4 00/19] Hide platform_profile_handler from consumers Ilpo Järvinen
2025-01-17 4:16 ` Kurt Borja
2025-01-16 22:20 ` Mark Pearson
2025-01-17 4:27 ` Kurt Borja
2025-01-17 16:42 ` Ilpo Järvinen
2025-01-17 17:13 ` Kurt Borja
2025-01-17 17:19 ` Ilpo Järvinen
2025-01-17 20:45 ` Mark Pearson
2025-01-18 1:33 ` Mark Pearson
2025-01-18 7:16 ` Kurt Borja
2025-01-20 12:28 ` Ilpo Järvinen
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=ed32abca-5d38-4ef4-aafb-fd047732920f@gmail.com \
--to=luzmaximilian@gmail.com \
--cc=Dell.Client.Kernel@dell.com \
--cc=Shyam-sundar.S-k@amd.com \
--cc=W_Armin@gmx.de \
--cc=aichao@kylinos.cn \
--cc=alexbelm48@gmail.com \
--cc=corentin.chary@gmail.com \
--cc=derekjohn.clark@gmail.com \
--cc=hdegoede@redhat.com \
--cc=hmh@hmh.eng.br \
--cc=ibm-acpi-devel@lists.sourceforge.net \
--cc=ike.pan@canonical.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jlee@suse.com \
--cc=josh@joshuagrisham.com \
--cc=kuurtb@gmail.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lsanche@lyndeno.ca \
--cc=luke@ljones.dev \
--cc=mario.limonciello@amd.com \
--cc=mpearson-lenovo@squebb.ca \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=soyer@irl.hu \
/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