From: Leon Romanovsky <leon@kernel.org> To: "David S . Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org> Cc: Leon Romanovsky <leonro@nvidia.com>, Alexandre Belloni <alexandre.belloni@bootlin.com>, Andrew Lunn <andrew@lunn.ch>, Ariel Elior <aelior@marvell.com>, Bin Luo <luobin9@huawei.com>, Claudiu Manoil <claudiu.manoil@nxp.com>, Coiby Xu <coiby.xu@gmail.com>, Derek Chickles <dchickles@marvell.com>, drivers@pensando.io, Felix Manlunas <fmanlunas@marvell.com>, Florian Fainelli <f.fainelli@gmail.com>, Geetha sowjanya <gakula@marvell.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, GR-everest-linux-l2@marvell.com, GR-Linux-NIC-Dev@marvell.com, hariprasad <hkelam@marvell.com>, Ido Schimmel <idosch@nvidia.com>, Intel Corporation <linuxwwan@intel.com>, intel-wired-lan@lists.osuosl.org, Ioana Ciornei <ioana.ciornei@nxp.com>, Jerin Jacob <jerinj@marvell.com>, Jesse Brandeburg <jesse.brandeburg@intel.com>, Jiri Pirko <jiri@nvidia.com>, Jonathan Lemon <jonathan.lemon@gmail.com>, Linu Cherian <lcherian@marvell.com>, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-rdma@vger.kernel.org, linux-staging@lists.linux.dev, Loic Poulain <loic.poulain@linaro.org>, Manish Chopra <manishc@marvell.com>, M Chetan Kumar <m.chetan.kumar@intel.com>, Michael Chan <michael.chan@broadcom.com>, Michael Guralnik <michaelgur@mellanox.com>, netdev@vger.kernel.org, oss-drivers@corigine.com, Richard Cochran <richardcochran@gmail.com>, Saeed Mahameed <saeedm@nvidia.com>, Satanand Burla <sburla@marvell.com>, Sergey Ryazanov <ryazanov.s.a@gmail.com>, Shannon Nelson <snelson@pensando.io>, Simon Horman <simon.horman@corigine.com>, Subbaraya Sundeep <sbhatta@marvell.com>, Sunil Goutham <sgoutham@marvell.com>, Taras Chornyi <tchornyi@marvell.com>, Tariq Toukan <tariqt@nvidia.com>, Tony Nguyen <anthony.l.nguyen@intel.com>, UNGLinuxDriver@microchip.com, Vadym Kochan <vkochan@marvell.com>, Vivien Didelot <vivien.didelot@gmail.com>, Vladimir Oltean <vladimir.oltean@nxp.com> Subject: [PATCH net-next v1 08/21] net/prestera: Split devlink and traps registrations to separate routines Date: Sat, 25 Sep 2021 14:22:48 +0300 [thread overview] Message-ID: <0e3101259046a001c417415b84b834ca56d1bfd3.1632565508.git.leonro@nvidia.com> (raw) In-Reply-To: <cover.1632565508.git.leonro@nvidia.com> From: Leon Romanovsky <leonro@nvidia.com> Separate devlink registrations and traps registrations so devlink will be registered when driver is fully initialized. Signed-off-by: Leon Romanovsky <leonro@nvidia.com> --- .../marvell/prestera/prestera_devlink.c | 29 ++++--------------- .../marvell/prestera/prestera_devlink.h | 4 ++- .../ethernet/marvell/prestera/prestera_main.c | 8 +++-- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c index 5cca007a3e17..06279cd6da67 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c @@ -345,8 +345,6 @@ static struct prestera_trap prestera_trap_items_arr[] = { }, }; -static void prestera_devlink_traps_fini(struct prestera_switch *sw); - static int prestera_drop_counter_get(struct devlink *devlink, const struct devlink_trap *trap, u64 *p_drops); @@ -381,8 +379,6 @@ static int prestera_trap_action_set(struct devlink *devlink, enum devlink_trap_action action, struct netlink_ext_ack *extack); -static int prestera_devlink_traps_register(struct prestera_switch *sw); - static const struct devlink_ops prestera_dl_ops = { .info_get = prestera_dl_info_get, .trap_init = prestera_trap_init, @@ -407,34 +403,18 @@ void prestera_devlink_free(struct prestera_switch *sw) devlink_free(dl); } -int prestera_devlink_register(struct prestera_switch *sw) +void prestera_devlink_register(struct prestera_switch *sw) { struct devlink *dl = priv_to_devlink(sw); - int err; devlink_register(dl); - - err = prestera_devlink_traps_register(sw); - if (err) { - devlink_unregister(dl); - dev_err(sw->dev->dev, "devlink_traps_register failed: %d\n", - err); - return err; - } - - return 0; } void prestera_devlink_unregister(struct prestera_switch *sw) { - struct prestera_trap_data *trap_data = sw->trap_data; struct devlink *dl = priv_to_devlink(sw); - prestera_devlink_traps_fini(sw); devlink_unregister(dl); - - kfree(trap_data->trap_items_arr); - kfree(trap_data); } int prestera_devlink_port_register(struct prestera_port *port) @@ -482,7 +462,7 @@ struct devlink_port *prestera_devlink_get_port(struct net_device *dev) return &port->dl_port; } -static int prestera_devlink_traps_register(struct prestera_switch *sw) +int prestera_devlink_traps_register(struct prestera_switch *sw) { const u32 groups_count = ARRAY_SIZE(prestera_trap_groups_arr); const u32 traps_count = ARRAY_SIZE(prestera_trap_items_arr); @@ -621,8 +601,9 @@ static int prestera_drop_counter_get(struct devlink *devlink, cpu_code_type, p_drops); } -static void prestera_devlink_traps_fini(struct prestera_switch *sw) +void prestera_devlink_traps_unregister(struct prestera_switch *sw) { + struct prestera_trap_data *trap_data = sw->trap_data; struct devlink *dl = priv_to_devlink(sw); const struct devlink_trap *trap; int i; @@ -634,4 +615,6 @@ static void prestera_devlink_traps_fini(struct prestera_switch *sw) devlink_trap_groups_unregister(dl, prestera_trap_groups_arr, ARRAY_SIZE(prestera_trap_groups_arr)); + kfree(trap_data->trap_items_arr); + kfree(trap_data); } diff --git a/drivers/net/ethernet/marvell/prestera/prestera_devlink.h b/drivers/net/ethernet/marvell/prestera/prestera_devlink.h index cc34c3db13a2..b322295bad3a 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_devlink.h +++ b/drivers/net/ethernet/marvell/prestera/prestera_devlink.h @@ -9,7 +9,7 @@ struct prestera_switch *prestera_devlink_alloc(struct prestera_device *dev); void prestera_devlink_free(struct prestera_switch *sw); -int prestera_devlink_register(struct prestera_switch *sw); +void prestera_devlink_register(struct prestera_switch *sw); void prestera_devlink_unregister(struct prestera_switch *sw); int prestera_devlink_port_register(struct prestera_port *port); @@ -22,5 +22,7 @@ struct devlink_port *prestera_devlink_get_port(struct net_device *dev); void prestera_devlink_trap_report(struct prestera_port *port, struct sk_buff *skb, u8 cpu_code); +int prestera_devlink_traps_register(struct prestera_switch *sw); +void prestera_devlink_traps_unregister(struct prestera_switch *sw); #endif /* _PRESTERA_DEVLINK_H_ */ diff --git a/drivers/net/ethernet/marvell/prestera/prestera_main.c b/drivers/net/ethernet/marvell/prestera/prestera_main.c index 44c670807fb3..78a7a00bce22 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_main.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_main.c @@ -851,7 +851,7 @@ static int prestera_switch_init(struct prestera_switch *sw) if (err) goto err_span_init; - err = prestera_devlink_register(sw); + err = prestera_devlink_traps_register(sw); if (err) goto err_dl_register; @@ -863,12 +863,13 @@ static int prestera_switch_init(struct prestera_switch *sw) if (err) goto err_ports_create; + prestera_devlink_register(sw); return 0; err_ports_create: prestera_lag_fini(sw); err_lag_init: - prestera_devlink_unregister(sw); + prestera_devlink_traps_unregister(sw); err_dl_register: prestera_span_fini(sw); err_span_init: @@ -888,9 +889,10 @@ static int prestera_switch_init(struct prestera_switch *sw) static void prestera_switch_fini(struct prestera_switch *sw) { + prestera_devlink_unregister(sw); prestera_destroy_ports(sw); prestera_lag_fini(sw); - prestera_devlink_unregister(sw); + prestera_devlink_traps_unregister(sw); prestera_span_fini(sw); prestera_acl_fini(sw); prestera_event_handlers_unregister(sw); -- 2.31.1
WARNING: multiple messages have this Message-ID (diff)
From: Leon Romanovsky <leon@kernel.org> To: intel-wired-lan@osuosl.org Subject: [Intel-wired-lan] [PATCH net-next v1 08/21] net/prestera: Split devlink and traps registrations to separate routines Date: Sat, 25 Sep 2021 14:22:48 +0300 [thread overview] Message-ID: <0e3101259046a001c417415b84b834ca56d1bfd3.1632565508.git.leonro@nvidia.com> (raw) In-Reply-To: <cover.1632565508.git.leonro@nvidia.com> From: Leon Romanovsky <leonro@nvidia.com> Separate devlink registrations and traps registrations so devlink will be registered when driver is fully initialized. Signed-off-by: Leon Romanovsky <leonro@nvidia.com> --- .../marvell/prestera/prestera_devlink.c | 29 ++++--------------- .../marvell/prestera/prestera_devlink.h | 4 ++- .../ethernet/marvell/prestera/prestera_main.c | 8 +++-- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c index 5cca007a3e17..06279cd6da67 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c @@ -345,8 +345,6 @@ static struct prestera_trap prestera_trap_items_arr[] = { }, }; -static void prestera_devlink_traps_fini(struct prestera_switch *sw); - static int prestera_drop_counter_get(struct devlink *devlink, const struct devlink_trap *trap, u64 *p_drops); @@ -381,8 +379,6 @@ static int prestera_trap_action_set(struct devlink *devlink, enum devlink_trap_action action, struct netlink_ext_ack *extack); -static int prestera_devlink_traps_register(struct prestera_switch *sw); - static const struct devlink_ops prestera_dl_ops = { .info_get = prestera_dl_info_get, .trap_init = prestera_trap_init, @@ -407,34 +403,18 @@ void prestera_devlink_free(struct prestera_switch *sw) devlink_free(dl); } -int prestera_devlink_register(struct prestera_switch *sw) +void prestera_devlink_register(struct prestera_switch *sw) { struct devlink *dl = priv_to_devlink(sw); - int err; devlink_register(dl); - - err = prestera_devlink_traps_register(sw); - if (err) { - devlink_unregister(dl); - dev_err(sw->dev->dev, "devlink_traps_register failed: %d\n", - err); - return err; - } - - return 0; } void prestera_devlink_unregister(struct prestera_switch *sw) { - struct prestera_trap_data *trap_data = sw->trap_data; struct devlink *dl = priv_to_devlink(sw); - prestera_devlink_traps_fini(sw); devlink_unregister(dl); - - kfree(trap_data->trap_items_arr); - kfree(trap_data); } int prestera_devlink_port_register(struct prestera_port *port) @@ -482,7 +462,7 @@ struct devlink_port *prestera_devlink_get_port(struct net_device *dev) return &port->dl_port; } -static int prestera_devlink_traps_register(struct prestera_switch *sw) +int prestera_devlink_traps_register(struct prestera_switch *sw) { const u32 groups_count = ARRAY_SIZE(prestera_trap_groups_arr); const u32 traps_count = ARRAY_SIZE(prestera_trap_items_arr); @@ -621,8 +601,9 @@ static int prestera_drop_counter_get(struct devlink *devlink, cpu_code_type, p_drops); } -static void prestera_devlink_traps_fini(struct prestera_switch *sw) +void prestera_devlink_traps_unregister(struct prestera_switch *sw) { + struct prestera_trap_data *trap_data = sw->trap_data; struct devlink *dl = priv_to_devlink(sw); const struct devlink_trap *trap; int i; @@ -634,4 +615,6 @@ static void prestera_devlink_traps_fini(struct prestera_switch *sw) devlink_trap_groups_unregister(dl, prestera_trap_groups_arr, ARRAY_SIZE(prestera_trap_groups_arr)); + kfree(trap_data->trap_items_arr); + kfree(trap_data); } diff --git a/drivers/net/ethernet/marvell/prestera/prestera_devlink.h b/drivers/net/ethernet/marvell/prestera/prestera_devlink.h index cc34c3db13a2..b322295bad3a 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_devlink.h +++ b/drivers/net/ethernet/marvell/prestera/prestera_devlink.h @@ -9,7 +9,7 @@ struct prestera_switch *prestera_devlink_alloc(struct prestera_device *dev); void prestera_devlink_free(struct prestera_switch *sw); -int prestera_devlink_register(struct prestera_switch *sw); +void prestera_devlink_register(struct prestera_switch *sw); void prestera_devlink_unregister(struct prestera_switch *sw); int prestera_devlink_port_register(struct prestera_port *port); @@ -22,5 +22,7 @@ struct devlink_port *prestera_devlink_get_port(struct net_device *dev); void prestera_devlink_trap_report(struct prestera_port *port, struct sk_buff *skb, u8 cpu_code); +int prestera_devlink_traps_register(struct prestera_switch *sw); +void prestera_devlink_traps_unregister(struct prestera_switch *sw); #endif /* _PRESTERA_DEVLINK_H_ */ diff --git a/drivers/net/ethernet/marvell/prestera/prestera_main.c b/drivers/net/ethernet/marvell/prestera/prestera_main.c index 44c670807fb3..78a7a00bce22 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_main.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_main.c @@ -851,7 +851,7 @@ static int prestera_switch_init(struct prestera_switch *sw) if (err) goto err_span_init; - err = prestera_devlink_register(sw); + err = prestera_devlink_traps_register(sw); if (err) goto err_dl_register; @@ -863,12 +863,13 @@ static int prestera_switch_init(struct prestera_switch *sw) if (err) goto err_ports_create; + prestera_devlink_register(sw); return 0; err_ports_create: prestera_lag_fini(sw); err_lag_init: - prestera_devlink_unregister(sw); + prestera_devlink_traps_unregister(sw); err_dl_register: prestera_span_fini(sw); err_span_init: @@ -888,9 +889,10 @@ static int prestera_switch_init(struct prestera_switch *sw) static void prestera_switch_fini(struct prestera_switch *sw) { + prestera_devlink_unregister(sw); prestera_destroy_ports(sw); prestera_lag_fini(sw); - prestera_devlink_unregister(sw); + prestera_devlink_traps_unregister(sw); prestera_span_fini(sw); prestera_acl_fini(sw); prestera_event_handlers_unregister(sw); -- 2.31.1
next prev parent reply other threads:[~2021-09-25 11:23 UTC|newest] Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-25 11:22 [PATCH net-next v1 00/21] Move devlink_register to be last devlink command Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 01/21] devlink: Notify users when objects are accessible Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-28 2:49 ` Eric Dumazet 2021-09-28 2:49 ` [Intel-wired-lan] " Eric Dumazet 2021-09-28 7:34 ` Leon Romanovsky 2021-09-28 7:34 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 02/21] bnxt_en: Register devlink instance at the end devlink configuration Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 03/21] liquidio: Overcome missing device lock protection in init/remove flows Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 04/21] dpaa2-eth: Register devlink instance at the end of probe Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 05/21] net: hinic: Open device for the user access when it is ready Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 06/21] ice: Open devlink when device " Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-27 19:47 ` Jesse Brandeburg 2021-09-27 19:47 ` [Intel-wired-lan] " Jesse Brandeburg 2021-09-25 11:22 ` [PATCH net-next v1 07/21] octeontx2: Move devlink registration to be last devlink command Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` Leon Romanovsky [this message] 2021-09-25 11:22 ` [Intel-wired-lan] [PATCH net-next v1 08/21] net/prestera: Split devlink and traps registrations to separate routines Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 09/21] net/mlx4: Move devlink_register to be the last initialization command Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 10/21] net/mlx5: Accept devlink user input after driver initialization complete Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 11/21] mlxsw: core: Register devlink instance last Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-26 14:56 ` Ido Schimmel 2021-09-26 14:56 ` [Intel-wired-lan] " Ido Schimmel 2021-09-26 14:56 ` Ido Schimmel 2021-09-25 11:22 ` [PATCH net-next v1 12/21] net: mscc: ocelot: delay devlink registration to the end Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 13/21] nfp: Move delink_register to be last command Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-27 8:39 ` Simon Horman 2021-09-27 8:39 ` [Intel-wired-lan] " Simon Horman 2021-09-27 11:53 ` Leon Romanovsky 2021-09-27 11:53 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-27 12:20 ` Simon Horman 2021-09-27 12:20 ` [Intel-wired-lan] " Simon Horman 2021-09-25 11:22 ` [PATCH net-next v1 14/21] ionic: Move devlink registration to be last devlink command Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-27 16:07 ` Shannon Nelson 2021-09-27 16:07 ` [Intel-wired-lan] " Shannon Nelson 2021-09-25 11:22 ` [PATCH net-next v1 15/21] qed: " Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 16/21] net: ethernet: ti: " Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 17/21] netdevsim: " Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 18/21] net: wwan: iosm: Move devlink_register " Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:22 ` [PATCH net-next v1 19/21] ptp: ocp: Move devlink registration " Leon Romanovsky 2021-09-25 11:22 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:23 ` [PATCH net-next v1 20/21] staging: qlge: " Leon Romanovsky 2021-09-25 11:23 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-25 11:23 ` [PATCH net-next v1 21/21] net: dsa: " Leon Romanovsky 2021-09-25 11:23 ` [Intel-wired-lan] " Leon Romanovsky 2021-09-29 13:02 ` Vladimir Oltean 2021-09-29 13:02 ` [Intel-wired-lan] " Vladimir Oltean 2021-09-29 13:07 ` Leon Romanovsky 2021-09-29 13:07 ` [Intel-wired-lan] " Leon Romanovsky
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=0e3101259046a001c417415b84b834ca56d1bfd3.1632565508.git.leonro@nvidia.com \ --to=leon@kernel.org \ --cc=GR-Linux-NIC-Dev@marvell.com \ --cc=GR-everest-linux-l2@marvell.com \ --cc=UNGLinuxDriver@microchip.com \ --cc=aelior@marvell.com \ --cc=alexandre.belloni@bootlin.com \ --cc=andrew@lunn.ch \ --cc=anthony.l.nguyen@intel.com \ --cc=claudiu.manoil@nxp.com \ --cc=coiby.xu@gmail.com \ --cc=davem@davemloft.net \ --cc=dchickles@marvell.com \ --cc=drivers@pensando.io \ --cc=f.fainelli@gmail.com \ --cc=fmanlunas@marvell.com \ --cc=gakula@marvell.com \ --cc=gregkh@linuxfoundation.org \ --cc=hkelam@marvell.com \ --cc=idosch@nvidia.com \ --cc=intel-wired-lan@lists.osuosl.org \ --cc=ioana.ciornei@nxp.com \ --cc=jerinj@marvell.com \ --cc=jesse.brandeburg@intel.com \ --cc=jiri@nvidia.com \ --cc=jonathan.lemon@gmail.com \ --cc=kuba@kernel.org \ --cc=lcherian@marvell.com \ --cc=leonro@nvidia.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=linux-rdma@vger.kernel.org \ --cc=linux-staging@lists.linux.dev \ --cc=linuxwwan@intel.com \ --cc=loic.poulain@linaro.org \ --cc=luobin9@huawei.com \ --cc=m.chetan.kumar@intel.com \ --cc=manishc@marvell.com \ --cc=michael.chan@broadcom.com \ --cc=michaelgur@mellanox.com \ --cc=netdev@vger.kernel.org \ --cc=oss-drivers@corigine.com \ --cc=richardcochran@gmail.com \ --cc=ryazanov.s.a@gmail.com \ --cc=saeedm@nvidia.com \ --cc=sbhatta@marvell.com \ --cc=sburla@marvell.com \ --cc=sgoutham@marvell.com \ --cc=simon.horman@corigine.com \ --cc=snelson@pensando.io \ --cc=tariqt@nvidia.com \ --cc=tchornyi@marvell.com \ --cc=vivien.didelot@gmail.com \ --cc=vkochan@marvell.com \ --cc=vladimir.oltean@nxp.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: 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.