From: netdev-bot+sashiko@kernel.org
To: hramamurthy@google.com
Cc: netdev@vger.kernel.org, joshwash@google.com,
andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, ast@kernel.org,
daniel@iogearbox.net, hawk@kernel.org, john.fastabend@gmail.com,
sdf@fomichev.me, jordanrhee@google.com, willemb@google.com,
nktgrg@google.com, maolson@google.com, thostet@google.com,
jacob.e.keller@intel.com, debarghyak@google.com, kees@kernel.org,
bpf@vger.kernel.org, linux-kernel@vger.kernel.org,
przemyslaw.kitszel@intel.com
Subject: Re: [PATCH net-next v8 07/12] gve: add gve_ctrl_ops for gve initialization/teardown sequences
Date: Fri, 25 Sep 2026 18:56:04 +0000 [thread overview]
Message-ID: <179036256409.2160803.7834032519830054759@kernel.org> (raw)
In-Reply-To: <20260924185316.2831077-8-hramamurthy@google.com>
Thank you for your contribution! Sashiko AI review found more severe
issue(s) in other patches of this series. This mail is only an FYI, in case
you want to address the nit picks below when you respin.
Low priority / nit picks for your consideration:
- [Low] The kernel-doc for `struct gve_ctrl_ops` in
drivers/net/ethernet/google/gve/gve.h says `@setup_stats_report` is…
- [Low] This patch changes the prototype to `int
gve_adminq_get_ptype_map_dqo(struct gve_priv *priv);`, but…
--
gve: add gve_ctrl_ops for gve initialization/teardown sequences
This commit adds get_ptype_map, configure_rss, setup_stats_report and
reset_flow_rules callbacks to struct gve_ctrl_ops. The control plane
setup and teardown paths in gve_main.c now call them through
priv->ctrl_ops. gve_adminq_get_ptype_map_dqo() also changes: it now
writes into priv->ptype_lut_dqo directly and no longer takes a ptype_lut
argument.
> diff --git a/drivers/net/ethernet/google/gve/gve.h b/drivers/net/ethernet/google/gve/gve.h
> index 026d685ecaee3..e0583e8cd2cdb 100644
> --- a/drivers/net/ethernet/google/gve/gve.h
> +++ b/drivers/net/ethernet/google/gve/gve.h
> @@ -833,12 +833,24 @@ struct gve_device_info {
> * structures stored in @priv to be used during initialization.
> * @set_num_ntfy_blks: Sets no. of vectors into @priv to be used during
> * initialization.
> + * @get_ptype_map: Learn packet type map from device and store it in @priv
> + * @configure_rss: Set up default RSS configuration
> + * @setup_stats_report: Set up DMA region for stats report (AdminQ only)
> + * @reset_flow_rules: Flush all flow rules from device
> */
> struct gve_ctrl_ops {
> int (*map_db_bar)(struct gve_priv *priv);
> void (*unmap_db_bar)(struct gve_priv *priv);
> void (*set_num_queues)(struct gve_priv *priv);
> int (*set_num_ntfy_blks)(struct gve_priv *priv);
> + int (*get_ptype_map)(struct gve_priv *priv);
> + int (*configure_rss)(struct gve_priv *priv,
> + struct ethtool_rxfh_param *param);
> + int (*setup_stats_report)(struct gve_priv *priv,
> + u64 stats_report_len,
> + dma_addr_t stats_report_addr,
> + u64 interval_ms); /* AQ-specific */
[Severity: Low]
This isn't a bug, but is setup_stats_report meant to be optional for
back-ends other than AdminQ?
The kernel-doc says "(AdminQ only)" and the member has an "AQ-specific"
comment. Someone writing a future mailbox ops table could read that as
permission to leave the op NULL.
Both call sites use it without a NULL check, though. In
gve_setup_control_plane_resources():
err = ops->setup_stats_report(priv, priv->stats_report_len,
priv->stats_report_bus,
GVE_STATS_REPORT_TIMER_PERIOD);
and in gve_teardown_control_plane_resources():
err = ops->setup_stats_report(priv, 0, 0x0,
GVE_STATS_REPORT_TIMER_PERIOD);
A NULL call can't happen today. The only table, gve_adminq_ops, sets the
op to gve_adminq_report_stats(). Later in the series, release_db_resources
gets the same "(AdminQ only)" label and is also called without a NULL
check.
Could the kernel-doc say whether the op must always be provided, with
non-AdminQ back-ends supplying a stub? Or should the call sites check for
NULL?
[ ... ]
> diff --git a/drivers/net/ethernet/google/gve/gve_adminq.h b/drivers/net/ethernet/google/gve/gve_adminq.h
> index fe1e8868cdfe2..5e51c060e2372 100644
> --- a/drivers/net/ethernet/google/gve/gve_adminq.h
> +++ b/drivers/net/ethernet/google/gve/gve_adminq.h
> @@ -652,8 +652,7 @@ int gve_adminq_report_nic_ts(struct gve_priv *priv,
> dma_addr_t nic_ts_report_addr);
>
> struct gve_ptype_lut;
> -int gve_adminq_get_ptype_map_dqo(struct gve_priv *priv,
> - struct gve_ptype_lut *ptype_lut);
> +int gve_adminq_get_ptype_map_dqo(struct gve_priv *priv);
[Severity: Low]
This isn't a bug, but now that the ptype_lut argument is gone, is the
"struct gve_ptype_lut;" forward declaration above still needed?
Nothing else in gve_adminq.h refers to that type. The declaration is also
still there at the end of the series.
[ ... ]
--
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260924185316.2831077-1-hramamurthy%40google.com
next prev parent reply other threads:[~2026-09-25 18:56 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 18:53 [PATCH net-next v8 00/12] gve: AdminQ mode related refactors Harshitha Ramamurthy
2026-09-24 18:53 ` [PATCH net-next v8 01/12] gve: add struct gve_device_info to hold device properties Harshitha Ramamurthy
2026-09-25 18:55 ` netdev-bot+sashiko
2026-09-24 18:53 ` [PATCH net-next v8 02/12] gve: introduce control plane operations structure Harshitha Ramamurthy
2026-09-24 18:53 ` [PATCH net-next v8 03/12] gve: introduce ctrl ops to set vectors and Qs Harshitha Ramamurthy
2026-09-24 18:53 ` [PATCH net-next v8 04/12] gve: introduce gve_adminq_get_device_properties() Harshitha Ramamurthy
2026-09-24 18:53 ` [PATCH net-next v8 05/12] gve: refactor gve_init_priv for reset path Harshitha Ramamurthy
2026-09-25 18:56 ` netdev-bot+sashiko
2026-09-24 18:53 ` [PATCH net-next v8 06/12] gve: simplify reset logic Harshitha Ramamurthy
2026-09-25 18:56 ` netdev-bot+sashiko
2026-09-24 18:53 ` [PATCH net-next v8 07/12] gve: add gve_ctrl_ops for gve initialization/teardown sequences Harshitha Ramamurthy
2026-09-25 18:56 ` netdev-bot+sashiko [this message]
2026-09-24 18:53 ` [PATCH net-next v8 08/12] gve: split up notify block allocation and setup paths Harshitha Ramamurthy
2026-09-24 18:53 ` [PATCH net-next v8 09/12] gve: introduce new methods to handle IRQ doorbells Harshitha Ramamurthy
2026-09-24 18:53 ` [PATCH net-next v8 10/12] gve: setup and teardown management interrupts Harshitha Ramamurthy
2026-09-24 18:53 ` [PATCH net-next v8 11/12] gve: add ctrl ops for queue operations Harshitha Ramamurthy
2026-09-24 18:53 ` [PATCH net-next v8 12/12] gve: add link status/speed ctrl ops Harshitha Ramamurthy
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=179036256409.2160803.7834032519830054759@kernel.org \
--to=netdev-bot+sashiko@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=debarghyak@google.com \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=hramamurthy@google.com \
--cc=jacob.e.keller@intel.com \
--cc=john.fastabend@gmail.com \
--cc=jordanrhee@google.com \
--cc=joshwash@google.com \
--cc=kees@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maolson@google.com \
--cc=netdev@vger.kernel.org \
--cc=nktgrg@google.com \
--cc=pabeni@redhat.com \
--cc=przemyslaw.kitszel@intel.com \
--cc=sdf@fomichev.me \
--cc=thostet@google.com \
--cc=willemb@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®