Commit cd0ffc8d authored by Michał Winiarski's avatar Michał Winiarski
Browse files

drm/xe/pf: Convert control state to bitmap



In upcoming changes, the number of states will increase as a result of
introducing SAVE and RESTORE states.
This means that using unsigned long as underlying storage won't work on
32-bit architectures, as we'll run out of bits.
Use bitmap instead.

Reported-by: default avatarkernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202510231918.XlOqymLC-lkp@intel.com/


Reviewed-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://patch.msgid.link/20251112132220.516975-4-michal.winiarski@intel.com


Signed-off-by: default avatarMichał Winiarski <michal.winiarski@intel.com>
parent 4a43480a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -225,7 +225,7 @@ static unsigned long *pf_peek_vf_state(struct xe_gt *gt, unsigned int vfid)
{
	struct xe_gt_sriov_control_state *cs = pf_pick_vf_control(gt, vfid);

	return &cs->state;
	return cs->state;
}

static bool pf_check_vf_state(struct xe_gt *gt, unsigned int vfid,
+4 −2
Original line number Diff line number Diff line
@@ -73,9 +73,11 @@ enum xe_gt_sriov_control_bits {
	XE_GT_SRIOV_STATE_STOP_FAILED,
	XE_GT_SRIOV_STATE_STOPPED,

	XE_GT_SRIOV_STATE_MISMATCH = BITS_PER_LONG - 1,
	XE_GT_SRIOV_STATE_MISMATCH, /* always keep as last */
};

#define XE_GT_SRIOV_NUM_STATES (XE_GT_SRIOV_STATE_MISMATCH + 1)

/**
 * struct xe_gt_sriov_control_state - GT-level per-VF control state.
 *
@@ -83,7 +85,7 @@ enum xe_gt_sriov_control_bits {
 */
struct xe_gt_sriov_control_state {
	/** @state: VF state bits */
	unsigned long state;
	DECLARE_BITMAP(state, XE_GT_SRIOV_NUM_STATES);

	/** @done: completion of async operations */
	struct completion done;