Commit e5f77f4a authored by Mitch Williams's avatar Mitch Williams Committed by Jeff Kirsher
Browse files

i40evf: track outstanding client request



The iWarp client cannot continue until this operation has been completed
by the PF driver. Sleep (with timeout) until the reply from the PF
driver has been received.

Change-ID: I5dc41b857bba32d0218b7ce167b5da122dadf349
Signed-off-by: default avatarMitch Williams <mitch.a.williams@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent d7ce6422
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ enum i40e_virtchnl_ops {
	I40E_VIRTCHNL_OP_GET_STATS = 15,
	I40E_VIRTCHNL_OP_FCOE = 16,
	I40E_VIRTCHNL_OP_EVENT = 17, /* must ALWAYS be 17 */
	I40E_VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP = 21,
	I40E_VIRTCHNL_OP_CONFIG_RSS_KEY = 23,
	I40E_VIRTCHNL_OP_CONFIG_RSS_LUT = 24,
	I40E_VIRTCHNL_OP_GET_RSS_HENA_CAPS = 25,
+1 −0
Original line number Diff line number Diff line
@@ -195,6 +195,7 @@ struct i40evf_adapter {
	u64 hw_csum_rx_error;
	u32 rx_desc_count;
	int num_msix_vectors;
	u32 client_pending;
	struct msix_entry *msix_entries;

	u32 flags;
+4 −0
Original line number Diff line number Diff line
@@ -999,6 +999,10 @@ void i40evf_virtchnl_completion(struct i40evf_adapter *adapter,
		if (v_opcode != adapter->current_op)
			return;
		break;
	case I40E_VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP:
		adapter->client_pending &=
				~(BIT(I40E_VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP));
		break;
	case I40E_VIRTCHNL_OP_GET_RSS_HENA_CAPS: {
		struct i40e_virtchnl_rss_hena *vrh =
			(struct i40e_virtchnl_rss_hena *)msg;