From: Tony Nguyen <anthony.l.nguyen@intel.com>
To: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
edumazet@google.com
Cc: Jacob Keller <jacob.e.keller@intel.com>,
netdev@vger.kernel.org, anthony.l.nguyen@intel.com,
Marek Szlosek <marek.szlosek@intel.com>
Subject: [PATCH net-next 12/13] ice: introduce .irq_close VF operation
Date: Mon, 6 Feb 2023 13:48:12 -0800 [thread overview]
Message-ID: <20230206214813.20107-13-anthony.l.nguyen@intel.com> (raw)
In-Reply-To: <20230206214813.20107-1-anthony.l.nguyen@intel.com>
From: Jacob Keller <jacob.e.keller@intel.com>
The Scalable IOV implementation will require notifying the VDCM driver when
an IRQ must be closed. This allows the VDCM to handle releasing stale IRQ
context values and properly reconfigure.
To handle this, introduce a new optional .irq_close callback to the VF
operations structure. This will be implemented by Scalable IOV to handle
the shutdown of the IRQ context.
Since the SR-IOV implementation does not need this, we must check that its
non-NULL before calling it.
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Marek Szlosek <marek.szlosek@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
drivers/net/ethernet/intel/ice/ice_sriov.c | 1 +
drivers/net/ethernet/intel/ice/ice_vf_lib.c | 4 ++++
drivers/net/ethernet/intel/ice/ice_vf_lib.h | 1 +
3 files changed, 6 insertions(+)
diff --git a/drivers/net/ethernet/intel/ice/ice_sriov.c b/drivers/net/ethernet/intel/ice/ice_sriov.c
index 4d8930b83b35..356ac76ef90f 100644
--- a/drivers/net/ethernet/intel/ice/ice_sriov.c
+++ b/drivers/net/ethernet/intel/ice/ice_sriov.c
@@ -807,6 +807,7 @@ static const struct ice_vf_ops ice_sriov_vf_ops = {
.trigger_reset_register = ice_sriov_trigger_reset_register,
.poll_reset_status = ice_sriov_poll_reset_status,
.clear_reset_trigger = ice_sriov_clear_reset_trigger,
+ .irq_close = NULL,
.create_vsi = ice_sriov_create_vsi,
.post_vsi_rebuild = ice_sriov_post_vsi_rebuild,
};
diff --git a/drivers/net/ethernet/intel/ice/ice_vf_lib.c b/drivers/net/ethernet/intel/ice/ice_vf_lib.c
index 2ea801ebb2ac..d16c2ea83873 100644
--- a/drivers/net/ethernet/intel/ice/ice_vf_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_vf_lib.c
@@ -237,6 +237,10 @@ static void ice_vf_clear_counters(struct ice_vf *vf)
*/
static void ice_vf_pre_vsi_rebuild(struct ice_vf *vf)
{
+ /* Close any IRQ mapping now */
+ if (vf->vf_ops->irq_close)
+ vf->vf_ops->irq_close(vf);
+
ice_vf_clear_counters(vf);
vf->vf_ops->clear_reset_trigger(vf);
}
diff --git a/drivers/net/ethernet/intel/ice/ice_vf_lib.h b/drivers/net/ethernet/intel/ice/ice_vf_lib.h
index 5bb75edb6cef..b4e6480f30a7 100644
--- a/drivers/net/ethernet/intel/ice/ice_vf_lib.h
+++ b/drivers/net/ethernet/intel/ice/ice_vf_lib.h
@@ -61,6 +61,7 @@ struct ice_vf_ops {
void (*trigger_reset_register)(struct ice_vf *vf, bool is_vflr);
bool (*poll_reset_status)(struct ice_vf *vf);
void (*clear_reset_trigger)(struct ice_vf *vf);
+ void (*irq_close)(struct ice_vf *vf);
int (*create_vsi)(struct ice_vf *vf);
void (*post_vsi_rebuild)(struct ice_vf *vf);
};
--
2.38.1
next prev parent reply other threads:[~2023-02-06 21:49 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-06 21:48 [PATCH net-next 00/13][pull request] ice: various virtualization cleanups Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 01/13] ice: Add more usage of existing function ice_get_vf_vsi(vf) Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 02/13] ice: fix function comment referring to ice_vsi_alloc Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 03/13] ice: drop unnecessary VF parameter from several VSI functions Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 04/13] ice: refactor VSI setup to use parameter structure Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 05/13] ice: move vsi_type assignment from ice_vsi_alloc to ice_vsi_cfg Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 06/13] ice: move ice_vf_vsi_release into ice_vf_lib.c Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 07/13] ice: Pull common tasks into ice_vf_post_vsi_rebuild Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 08/13] ice: add a function to initialize vf entry Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 09/13] ice: introduce ice_vf_init_host_cfg function Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 10/13] ice: convert vf_ops .vsi_rebuild to .create_vsi Tony Nguyen
2023-02-06 21:48 ` [PATCH net-next 11/13] ice: introduce clear_reset_state operation Tony Nguyen
2023-02-06 21:48 ` Tony Nguyen [this message]
2023-02-06 21:48 ` [PATCH net-next 13/13] ice: remove unnecessary virtchnl_ether_addr struct use Tony Nguyen
2023-02-08 6:00 ` [PATCH net-next 00/13][pull request] ice: various virtualization cleanups patchwork-bot+netdevbpf
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=20230206214813.20107-13-anthony.l.nguyen@intel.com \
--to=anthony.l.nguyen@intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jacob.e.keller@intel.com \
--cc=kuba@kernel.org \
--cc=marek.szlosek@intel.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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;
as well as URLs for NNTP newsgroup(s).