mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 03:35:32 -04:00
drm/xe/pf: Don't attempt to process FAST_REQ or EVENT relays
Currently defined VF/PF relay actions use regular REQUEST messages
only and the PF shouldn't attempt to handle FAST_REQUEST nor EVENT
messages as this would result in breaking the VFPF ABI protocol
and also might trigger an assert on the PF side.
Fixes: 98e6280592 ("drm/xe/pf: Add SR-IOV GuC Relay PF services")
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
Link: https://patch.msgid.link/20260527183735.22616-1-michal.wajdeczko@intel.com
This commit is contained in:
@@ -689,12 +689,17 @@ static int relay_action_handler(struct xe_guc_relay *relay, u32 origin,
|
||||
return relay_testloop_action_handler(relay, origin, msg, len, response, size);
|
||||
|
||||
type = FIELD_GET(GUC_HXG_MSG_0_TYPE, msg[0]);
|
||||
relay_assert(relay, guc_hxg_type_is_action(type));
|
||||
|
||||
if (IS_SRIOV_PF(relay_to_xe(relay)))
|
||||
ret = xe_gt_sriov_pf_service_process_request(gt, origin, msg, len, response, size);
|
||||
else
|
||||
if (IS_SRIOV_PF(relay_to_xe(relay))) {
|
||||
if (type == GUC_HXG_TYPE_REQUEST)
|
||||
ret = xe_gt_sriov_pf_service_process_request(gt, origin, msg, len,
|
||||
response, size);
|
||||
else
|
||||
ret = -EOPNOTSUPP;
|
||||
} else {
|
||||
ret = -EOPNOTSUPP;
|
||||
|
||||
}
|
||||
if (type == GUC_HXG_TYPE_EVENT)
|
||||
relay_assert(relay, ret <= 0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user