|
@@ -1136,13 +1136,17 @@ static void qed_iov_send_response(struct qed_hwfn *p_hwfn,
|
|
(sizeof(union pfvf_tlvs) - sizeof(u64)) / 4,
|
|
(sizeof(union pfvf_tlvs) - sizeof(u64)) / 4,
|
|
¶ms);
|
|
¶ms);
|
|
|
|
|
|
- qed_dmae_host2host(p_hwfn, p_ptt, mbx->reply_phys,
|
|
|
|
- mbx->req_virt->first_tlv.reply_address,
|
|
|
|
- sizeof(u64) / 4, ¶ms);
|
|
|
|
-
|
|
|
|
|
|
+ /* Once PF copies the rc to the VF, the latter can continue
|
|
|
|
+ * and send an additional message. So we have to make sure the
|
|
|
|
+ * channel would be re-set to ready prior to that.
|
|
|
|
+ */
|
|
REG_WR(p_hwfn,
|
|
REG_WR(p_hwfn,
|
|
GTT_BAR0_MAP_REG_USDM_RAM +
|
|
GTT_BAR0_MAP_REG_USDM_RAM +
|
|
USTORM_VF_PF_CHANNEL_READY_OFFSET(eng_vf_id), 1);
|
|
USTORM_VF_PF_CHANNEL_READY_OFFSET(eng_vf_id), 1);
|
|
|
|
+
|
|
|
|
+ qed_dmae_host2host(p_hwfn, p_ptt, mbx->reply_phys,
|
|
|
|
+ mbx->req_virt->first_tlv.reply_address,
|
|
|
|
+ sizeof(u64) / 4, ¶ms);
|
|
}
|
|
}
|
|
|
|
|
|
static u16 qed_iov_vport_to_tlv(struct qed_hwfn *p_hwfn,
|
|
static u16 qed_iov_vport_to_tlv(struct qed_hwfn *p_hwfn,
|