All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Jakob Koschel <jakobkoschel@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Cc: Andrew Lunn <andrew@lunn.ch>,
	Cristiano Giuffrida <c.giuffrida@vu.nl>,
	Eric Dumazet <edumazet@google.com>,
	Paul Mackerras <paulus@samba.org>,
	Ariel Elior <aelior@marvell.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Manish Chopra <manishc@marvell.com>,
	Steen Hegelund <Steen.Hegelund@microchip.com>,
	"Bos, H.J." <h.j.bos@vu.nl>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	Martin Habets <habetsm.xilinx@gmail.com>,
	Paolo Abeni <pabeni@redhat.com>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	Bjarni Jonasson <bjarni.jonasson@microchip.com>,
	Jiri Pirko <jiri@resnulli.us>, Arnd Bergmann <arnd@arndb.de>,
	Brian Johannesmeyer <bjohannesmeyer@gmail.com>,
	Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
	Jakub Kicinski <kuba@kernel.org>, Di Zhu <zhudi21@huawei.com>,
	Lars Povlsen <lars.povlsen@microchip.com>,
	Colin Ian King <colin.king@intel.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"UNGLinuxDriver@microchip.com" <UNGLinuxDriver@microchip.com>,
	Edward Cree <ecree.xilinx@gmail.com>,
	Michael Walle <michael@walle.cc>, Xu Wang <vulab@iscas.ac.cn>,
	Vladimir Oltean <olteanv@gmail.com>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	Casper Andersson <casper.casan@gmail.com>,
	Mike Rapoport <rppt@kernel.org>
Subject: Re: [PATCH net-next 02/15] net: dsa: sja1105: Remove usage of iterator for list_add() after loop
Date: Fri, 8 Apr 2022 07:47:59 +0000	[thread overview]
Message-ID: <cd02715e-890d-bf67-697a-8f9b06160536@csgroup.eu> (raw)
In-Reply-To: <20220407102900.3086255-3-jakobkoschel@gmail.com>



Le 07/04/2022 à 12:28, Jakob Koschel a écrit :
> In preparation to limit the scope of a list iterator to the list
> traversal loop, use a dedicated pointer to point to the found element [1].
> 
> Before, the code implicitly used the head when no element was found
> when using &pos->list. Since the new variable is only set if an
> element was found, the list_add() is performed within the loop
> and only done after the loop if it is done on the list head directly.
> 
> Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/ [1]
> Signed-off-by: Jakob Koschel <jakobkoschel@gmail.com>
> ---
>   drivers/net/dsa/sja1105/sja1105_vl.c | 14 +++++++++-----
>   1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/dsa/sja1105/sja1105_vl.c b/drivers/net/dsa/sja1105/sja1105_vl.c
> index b7e95d60a6e4..cfcae4d19eef 100644
> --- a/drivers/net/dsa/sja1105/sja1105_vl.c
> +++ b/drivers/net/dsa/sja1105/sja1105_vl.c
> @@ -27,20 +27,24 @@ static int sja1105_insert_gate_entry(struct sja1105_gating_config *gating_cfg,
>   	if (list_empty(&gating_cfg->entries)) {
>   		list_add(&e->list, &gating_cfg->entries);
>   	} else {
> -		struct sja1105_gate_entry *p;
> +		struct sja1105_gate_entry *p = NULL, *iter;
>   
> -		list_for_each_entry(p, &gating_cfg->entries, list) {
> -			if (p->interval == e->interval) {
> +		list_for_each_entry(iter, &gating_cfg->entries, list) {
> +			if (iter->interval == e->interval) {
>   				NL_SET_ERR_MSG_MOD(extack,
>   						   "Gate conflict");
>   				rc = -EBUSY;
>   				goto err;
>   			}
>   
> -			if (e->interval < p->interval)
> +			if (e->interval < iter->interval) {
> +				p = iter;
> +				list_add(&e->list, iter->list.prev);
>   				break;
> +			}
>   		}
> -		list_add(&e->list, p->list.prev);
> +		if (!p)
> +			list_add(&e->list, gating_cfg->entries.prev);
>   	}
>   
>   	gating_cfg->num_entries++;

This change looks ugly, why duplicating the list_add() to do the same ? 
At the end of the loop the pointer contains gating_cfg->entries, so it 
was cleaner before.

If you don't want to use the loop index outside the loop, fair enough, 
all you have to do is:

		struct sja1105_gate_entry *p, *iter;

		list_for_each_entry(iter, &gating_cfg->entries, list) {
			if (iter->interval == e->interval) {
				NL_SET_ERR_MSG_MOD(extack,
						   "Gate conflict");
				rc = -EBUSY;
				goto err;
			}
			p = iter;

			if (e->interval < iter->interval)
				break;
		}
		list_add(&e->list, p->list.prev);



Christophe

WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Jakob Koschel <jakobkoschel@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Cc: Andrew Lunn <andrew@lunn.ch>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Eric Dumazet <edumazet@google.com>,
	Paul Mackerras <paulus@samba.org>,
	Ariel Elior <aelior@marvell.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Manish Chopra <manishc@marvell.com>,
	Steen Hegelund <Steen.Hegelund@microchip.com>,
	"Bos, H.J." <h.j.bos@vu.nl>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	Bjarni Jonasson <bjarni.jonasson@microchip.com>,
	Jiri Pirko <jiri@resnulli.us>, Arnd Bergmann <arnd@arndb.de>,
	Brian Johannesmeyer <bjohannesmeyer@gmail.com>,
	Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
	Martin Habets <habetsm.xilinx@gmail.com>,
	Di Zhu <zhudi21@huawei.com>,
	Lars Povlsen <lars.povlsen@microchip.com>,
	Vladimir Oltean <olteanv@gmail.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	Cristiano Giuffrida <c.giuffrida@vu.nl>,
	"UNGLinuxDriver@microchip.com" <UNGLinuxDriver@microchip.com>,
	Edward Cree <ecree.xilinx@gmail.com>,
	Michael Walle <michael@walle.cc>, Xu Wang <vulab@iscas.ac.cn>,
	Colin Ian King <colin.king@intel.com>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	Casper Andersson <casper.casan@gmail.com>,
	Mike Rapoport <rppt@kernel.org>
Subject: Re: [PATCH net-next 02/15] net: dsa: sja1105: Remove usage of iterator for list_add() after loop
Date: Fri, 8 Apr 2022 07:47:59 +0000	[thread overview]
Message-ID: <cd02715e-890d-bf67-697a-8f9b06160536@csgroup.eu> (raw)
In-Reply-To: <20220407102900.3086255-3-jakobkoschel@gmail.com>



Le 07/04/2022 à 12:28, Jakob Koschel a écrit :
> In preparation to limit the scope of a list iterator to the list
> traversal loop, use a dedicated pointer to point to the found element [1].
> 
> Before, the code implicitly used the head when no element was found
> when using &pos->list. Since the new variable is only set if an
> element was found, the list_add() is performed within the loop
> and only done after the loop if it is done on the list head directly.
> 
> Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/ [1]
> Signed-off-by: Jakob Koschel <jakobkoschel@gmail.com>
> ---
>   drivers/net/dsa/sja1105/sja1105_vl.c | 14 +++++++++-----
>   1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/dsa/sja1105/sja1105_vl.c b/drivers/net/dsa/sja1105/sja1105_vl.c
> index b7e95d60a6e4..cfcae4d19eef 100644
> --- a/drivers/net/dsa/sja1105/sja1105_vl.c
> +++ b/drivers/net/dsa/sja1105/sja1105_vl.c
> @@ -27,20 +27,24 @@ static int sja1105_insert_gate_entry(struct sja1105_gating_config *gating_cfg,
>   	if (list_empty(&gating_cfg->entries)) {
>   		list_add(&e->list, &gating_cfg->entries);
>   	} else {
> -		struct sja1105_gate_entry *p;
> +		struct sja1105_gate_entry *p = NULL, *iter;
>   
> -		list_for_each_entry(p, &gating_cfg->entries, list) {
> -			if (p->interval == e->interval) {
> +		list_for_each_entry(iter, &gating_cfg->entries, list) {
> +			if (iter->interval == e->interval) {
>   				NL_SET_ERR_MSG_MOD(extack,
>   						   "Gate conflict");
>   				rc = -EBUSY;
>   				goto err;
>   			}
>   
> -			if (e->interval < p->interval)
> +			if (e->interval < iter->interval) {
> +				p = iter;
> +				list_add(&e->list, iter->list.prev);
>   				break;
> +			}
>   		}
> -		list_add(&e->list, p->list.prev);
> +		if (!p)
> +			list_add(&e->list, gating_cfg->entries.prev);
>   	}
>   
>   	gating_cfg->num_entries++;

This change looks ugly, why duplicating the list_add() to do the same ? 
At the end of the loop the pointer contains gating_cfg->entries, so it 
was cleaner before.

If you don't want to use the loop index outside the loop, fair enough, 
all you have to do is:

		struct sja1105_gate_entry *p, *iter;

		list_for_each_entry(iter, &gating_cfg->entries, list) {
			if (iter->interval == e->interval) {
				NL_SET_ERR_MSG_MOD(extack,
						   "Gate conflict");
				rc = -EBUSY;
				goto err;
			}
			p = iter;

			if (e->interval < iter->interval)
				break;
		}
		list_add(&e->list, p->list.prev);



Christophe

WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Jakob Koschel <jakobkoschel@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Cc: Andrew Lunn <andrew@lunn.ch>,
	Cristiano Giuffrida <c.giuffrida@vu.nl>,
	Eric Dumazet <edumazet@google.com>,
	Paul Mackerras <paulus@samba.org>,
	Ariel Elior <aelior@marvell.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Manish Chopra <manishc@marvell.com>,
	Steen Hegelund <Steen.Hegelund@microchip.com>,
	"Bos, H.J." <h.j.bos@vu.nl>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Martin Habets <habetsm.xilinx@gmail.com>,
	Paolo Abeni <pabeni@redhat.com>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	Bjarni Jonasson <bjarni.jonasson@microchip.com>,
	Jiri Pirko <jiri@resnulli.us>, Arnd Bergmann <arnd@arndb.de>,
	Brian Johannesmeyer <bjohannesmeyer@gmail.com>,
	Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
	Jakub Kicinski <kuba@kernel.org>, Di Zhu <zhudi21@huawei.com>,
	Lars Povlsen <lars.povlsen@microchip.com>,
	Colin Ian King <colin.king@intel.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"UNGLinuxDriver@microchip.com" <UNGLinuxDriver@microchip.com>,
	Edward Cree <ecree.xilinx@gmail.com>,
	Michael Walle <michael@walle.cc>, Xu Wang <vulab@iscas.ac.cn>,
	Vladimir Oltean <olteanv@gmail.com>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	Casper Andersson <casper.casan@gmail.com>,
	Mike Rapoport <rppt@kernel.org>
Subject: Re: [PATCH net-next 02/15] net: dsa: sja1105: Remove usage of iterator for list_add() after loop
Date: Fri, 8 Apr 2022 07:47:59 +0000	[thread overview]
Message-ID: <cd02715e-890d-bf67-697a-8f9b06160536@csgroup.eu> (raw)
In-Reply-To: <20220407102900.3086255-3-jakobkoschel@gmail.com>



Le 07/04/2022 à 12:28, Jakob Koschel a écrit :
> In preparation to limit the scope of a list iterator to the list
> traversal loop, use a dedicated pointer to point to the found element [1].
> 
> Before, the code implicitly used the head when no element was found
> when using &pos->list. Since the new variable is only set if an
> element was found, the list_add() is performed within the loop
> and only done after the loop if it is done on the list head directly.
> 
> Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/ [1]
> Signed-off-by: Jakob Koschel <jakobkoschel@gmail.com>
> ---
>   drivers/net/dsa/sja1105/sja1105_vl.c | 14 +++++++++-----
>   1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/dsa/sja1105/sja1105_vl.c b/drivers/net/dsa/sja1105/sja1105_vl.c
> index b7e95d60a6e4..cfcae4d19eef 100644
> --- a/drivers/net/dsa/sja1105/sja1105_vl.c
> +++ b/drivers/net/dsa/sja1105/sja1105_vl.c
> @@ -27,20 +27,24 @@ static int sja1105_insert_gate_entry(struct sja1105_gating_config *gating_cfg,
>   	if (list_empty(&gating_cfg->entries)) {
>   		list_add(&e->list, &gating_cfg->entries);
>   	} else {
> -		struct sja1105_gate_entry *p;
> +		struct sja1105_gate_entry *p = NULL, *iter;
>   
> -		list_for_each_entry(p, &gating_cfg->entries, list) {
> -			if (p->interval == e->interval) {
> +		list_for_each_entry(iter, &gating_cfg->entries, list) {
> +			if (iter->interval == e->interval) {
>   				NL_SET_ERR_MSG_MOD(extack,
>   						   "Gate conflict");
>   				rc = -EBUSY;
>   				goto err;
>   			}
>   
> -			if (e->interval < p->interval)
> +			if (e->interval < iter->interval) {
> +				p = iter;
> +				list_add(&e->list, iter->list.prev);
>   				break;
> +			}
>   		}
> -		list_add(&e->list, p->list.prev);
> +		if (!p)
> +			list_add(&e->list, gating_cfg->entries.prev);
>   	}
>   
>   	gating_cfg->num_entries++;

This change looks ugly, why duplicating the list_add() to do the same ? 
At the end of the loop the pointer contains gating_cfg->entries, so it 
was cleaner before.

If you don't want to use the loop index outside the loop, fair enough, 
all you have to do is:

		struct sja1105_gate_entry *p, *iter;

		list_for_each_entry(iter, &gating_cfg->entries, list) {
			if (iter->interval == e->interval) {
				NL_SET_ERR_MSG_MOD(extack,
						   "Gate conflict");
				rc = -EBUSY;
				goto err;
			}
			p = iter;

			if (e->interval < iter->interval)
				break;
		}
		list_add(&e->list, p->list.prev);



Christophe
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2022-04-08  7:48 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-07 10:28 [PATCH net-next 00/15] net: Remove use of list iterator after loop body Jakob Koschel
2022-04-07 10:28 ` Jakob Koschel
2022-04-07 10:28 ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 01/15] connector: Replace usage of found with dedicated list iterator variable Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 02/15] net: dsa: sja1105: Remove usage of iterator for list_add() after loop Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-08  3:54   ` Jakub Kicinski
2022-04-08  3:54     ` Jakub Kicinski
2022-04-08  3:54     ` Jakub Kicinski
2022-04-08 23:58     ` Jakob Koschel
2022-04-08 23:58       ` Jakob Koschel
2022-04-08 23:58       ` Jakob Koschel
2022-04-09  0:04       ` Jakub Kicinski
2022-04-09  0:04         ` Jakub Kicinski
2022-04-09  0:04         ` Jakub Kicinski
2022-04-09  0:08       ` Vladimir Oltean
2022-04-09  0:08         ` Vladimir Oltean
2022-04-09  0:08         ` Vladimir Oltean
2022-04-08  7:47   ` Christophe Leroy [this message]
2022-04-08  7:47     ` Christophe Leroy
2022-04-08  7:47     ` Christophe Leroy
2022-04-08 23:49     ` Jakob Koschel
2022-04-08 23:49       ` Jakob Koschel
2022-04-08 23:49       ` Jakob Koschel
2022-04-08 11:41   ` Vladimir Oltean
2022-04-08 11:41     ` Vladimir Oltean
2022-04-08 11:41     ` Vladimir Oltean
2022-04-08 23:54     ` Jakob Koschel
2022-04-08 23:54       ` Jakob Koschel
2022-04-08 23:54       ` Jakob Koschel
2022-04-10 10:51       ` Jakob Koschel
2022-04-10 10:51         ` Jakob Koschel
2022-04-10 10:51         ` Jakob Koschel
2022-04-10 11:05         ` Vladimir Oltean
2022-04-10 11:05           ` Vladimir Oltean
2022-04-10 11:05           ` Vladimir Oltean
2022-04-10 12:39           ` Jakob Koschel
2022-04-10 12:39             ` Jakob Koschel
2022-04-10 12:39             ` Jakob Koschel
2022-04-10 18:24             ` Jakob Koschel
2022-04-10 18:24               ` Jakob Koschel
2022-04-10 18:24               ` Jakob Koschel
2022-04-10 20:02               ` Vladimir Oltean
2022-04-10 20:02                 ` Vladimir Oltean
2022-04-10 20:02                 ` Vladimir Oltean
2022-04-10 20:30                 ` Jakob Koschel
2022-04-10 20:30                   ` Jakob Koschel
2022-04-10 20:30                   ` Jakob Koschel
2022-04-10 20:34                   ` Vladimir Oltean
2022-04-10 20:34                     ` Vladimir Oltean
2022-04-10 20:34                     ` Vladimir Oltean
2022-04-07 10:28 ` [PATCH net-next 03/15] net: dsa: mv88e6xxx: Replace usage of found with dedicated iterator Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-08 12:31   ` Vladimir Oltean
2022-04-08 12:31     ` Vladimir Oltean
2022-04-08 12:31     ` Vladimir Oltean
2022-04-08 23:44     ` Jakob Koschel
2022-04-08 23:44       ` Jakob Koschel
2022-04-08 23:44       ` Jakob Koschel
2022-04-08 23:50       ` Vladimir Oltean
2022-04-08 23:50         ` Vladimir Oltean
2022-04-08 23:50         ` Vladimir Oltean
2022-04-09  0:00         ` Jakob Koschel
2022-04-09  0:00           ` Jakob Koschel
2022-04-09  0:00           ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 04/15] net: dsa: Replace usage of found with dedicated list iterator variable Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 05/15] net: sparx5: " Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 06/15] qed: Use " Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 07/15] qed: Replace usage of found with " Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 08/15] qed: Remove usage of list iterator variable after the loop Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 09/15] net: qede: Replace usage of found with dedicated list iterator variable Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 10/15] net: qede: Remove check of list iterator against head past the loop body Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 11/15] sfc: Remove usage of list iterator for list_add() after " Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 17:42   ` Edward Cree
2022-04-07 17:42     ` Edward Cree
2022-04-07 17:42     ` Edward Cree
2022-04-09  0:10     ` Jakob Koschel
2022-04-09  0:10       ` Jakob Koschel
2022-04-09  0:10       ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 12/15] net: netcp: Remove usage of list iterator for list_add() after " Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 13/15] ps3_gelic: Replace usage of found with dedicated list iterator variable Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28 ` [PATCH net-next 14/15] ipvlan: Remove usage of list iterator variable for the loop body Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:28   ` Jakob Koschel
2022-04-07 10:29 ` [PATCH net-next 15/15] team: Remove use of list iterator variable for list_for_each_entry_from() Jakob Koschel
2022-04-07 10:29   ` Jakob Koschel
2022-04-07 10:29   ` Jakob Koschel

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=cd02715e-890d-bf67-697a-8f9b06160536@csgroup.eu \
    --to=christophe.leroy@csgroup.eu \
    --cc=Steen.Hegelund@microchip.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=aelior@marvell.com \
    --cc=andrew@lunn.ch \
    --cc=arnd@arndb.de \
    --cc=bjarni.jonasson@microchip.com \
    --cc=bjohannesmeyer@gmail.com \
    --cc=c.giuffrida@vu.nl \
    --cc=casper.casan@gmail.com \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=colin.king@intel.com \
    --cc=davem@davemloft.net \
    --cc=ecree.xilinx@gmail.com \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=h.j.bos@vu.nl \
    --cc=habetsm.xilinx@gmail.com \
    --cc=jakobkoschel@gmail.com \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=lars.povlsen@microchip.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=manishc@marvell.com \
    --cc=michael@walle.cc \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=pabeni@redhat.com \
    --cc=paulus@samba.org \
    --cc=rppt@kernel.org \
    --cc=vivien.didelot@gmail.com \
    --cc=vulab@iscas.ac.cn \
    --cc=zhudi21@huawei.com \
    /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 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.