iommu/vt-d: Remove unused vcmd interfaces
Commit 99b5726b4423 ("iommu: Remove ioasid infrastructure") has removed ioasid allocation interfaces from the iommu subsystem. As a result, these vcmd interfaces have become obsolete. Remove them to avoid dead code. Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Link: https://lore.kernel.org/r/20231116015048.29675-4-baolu.lu@linux.intel.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
47642bdd5a
commit
d2b6690346
@ -106,9 +106,6 @@ static const struct iommu_regset iommu_regs_64[] = {
|
||||
IOMMU_REGSET_ENTRY(MTRR_PHYSMASK8),
|
||||
IOMMU_REGSET_ENTRY(MTRR_PHYSBASE9),
|
||||
IOMMU_REGSET_ENTRY(MTRR_PHYSMASK9),
|
||||
IOMMU_REGSET_ENTRY(VCCAP),
|
||||
IOMMU_REGSET_ENTRY(VCMD),
|
||||
IOMMU_REGSET_ENTRY(VCRSP),
|
||||
};
|
||||
|
||||
static struct dentry *intel_iommu_debug;
|
||||
|
@ -140,9 +140,6 @@
|
||||
#define DMAR_ECEO_REG 0x408
|
||||
#define DMAR_ECRSP_REG 0x410
|
||||
#define DMAR_ECCAP_REG 0x430
|
||||
#define DMAR_VCCAP_REG 0xe30 /* Virtual command capability register */
|
||||
#define DMAR_VCMD_REG 0xe00 /* Virtual command register */
|
||||
#define DMAR_VCRSP_REG 0xe10 /* Virtual command response register */
|
||||
|
||||
#define DMAR_IQER_REG_IQEI(reg) FIELD_GET(GENMASK_ULL(3, 0), reg)
|
||||
#define DMAR_IQER_REG_ITESID(reg) FIELD_GET(GENMASK_ULL(47, 32), reg)
|
||||
|
@ -26,63 +26,6 @@
|
||||
*/
|
||||
u32 intel_pasid_max_id = PASID_MAX;
|
||||
|
||||
int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid)
|
||||
{
|
||||
unsigned long flags;
|
||||
u8 status_code;
|
||||
int ret = 0;
|
||||
u64 res;
|
||||
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flags);
|
||||
dmar_writeq(iommu->reg + DMAR_VCMD_REG, VCMD_CMD_ALLOC);
|
||||
IOMMU_WAIT_OP(iommu, DMAR_VCRSP_REG, dmar_readq,
|
||||
!(res & VCMD_VRSP_IP), res);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flags);
|
||||
|
||||
status_code = VCMD_VRSP_SC(res);
|
||||
switch (status_code) {
|
||||
case VCMD_VRSP_SC_SUCCESS:
|
||||
*pasid = VCMD_VRSP_RESULT_PASID(res);
|
||||
break;
|
||||
case VCMD_VRSP_SC_NO_PASID_AVAIL:
|
||||
pr_info("IOMMU: %s: No PASID available\n", iommu->name);
|
||||
ret = -ENOSPC;
|
||||
break;
|
||||
default:
|
||||
ret = -ENODEV;
|
||||
pr_warn("IOMMU: %s: Unexpected error code %d\n",
|
||||
iommu->name, status_code);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void vcmd_free_pasid(struct intel_iommu *iommu, u32 pasid)
|
||||
{
|
||||
unsigned long flags;
|
||||
u8 status_code;
|
||||
u64 res;
|
||||
|
||||
raw_spin_lock_irqsave(&iommu->register_lock, flags);
|
||||
dmar_writeq(iommu->reg + DMAR_VCMD_REG,
|
||||
VCMD_CMD_OPERAND(pasid) | VCMD_CMD_FREE);
|
||||
IOMMU_WAIT_OP(iommu, DMAR_VCRSP_REG, dmar_readq,
|
||||
!(res & VCMD_VRSP_IP), res);
|
||||
raw_spin_unlock_irqrestore(&iommu->register_lock, flags);
|
||||
|
||||
status_code = VCMD_VRSP_SC(res);
|
||||
switch (status_code) {
|
||||
case VCMD_VRSP_SC_SUCCESS:
|
||||
break;
|
||||
case VCMD_VRSP_SC_INVALID_PASID:
|
||||
pr_info("IOMMU: %s: Invalid PASID\n", iommu->name);
|
||||
break;
|
||||
default:
|
||||
pr_warn("IOMMU: %s: Unexpected error code %d\n",
|
||||
iommu->name, status_code);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Per device pasid table management:
|
||||
*/
|
||||
|
@ -22,16 +22,6 @@
|
||||
#define is_pasid_enabled(entry) (((entry)->lo >> 3) & 0x1)
|
||||
#define get_pasid_dir_size(entry) (1 << ((((entry)->lo >> 9) & 0x7) + 7))
|
||||
|
||||
/* Virtual command interface for enlightened pasid management. */
|
||||
#define VCMD_CMD_ALLOC 0x1
|
||||
#define VCMD_CMD_FREE 0x2
|
||||
#define VCMD_VRSP_IP 0x1
|
||||
#define VCMD_VRSP_SC(e) (((e) & 0xff) >> 1)
|
||||
#define VCMD_VRSP_SC_SUCCESS 0
|
||||
#define VCMD_VRSP_SC_NO_PASID_AVAIL 16
|
||||
#define VCMD_VRSP_SC_INVALID_PASID 16
|
||||
#define VCMD_VRSP_RESULT_PASID(e) (((e) >> 16) & 0xfffff)
|
||||
#define VCMD_CMD_OPERAND(e) ((e) << 16)
|
||||
/*
|
||||
* Domain ID reserved for pasid entries programmed for first-level
|
||||
* only and pass-through transfer modes.
|
||||
@ -117,8 +107,6 @@ int intel_pasid_setup_nested(struct intel_iommu *iommu, struct device *dev,
|
||||
void intel_pasid_tear_down_entry(struct intel_iommu *iommu,
|
||||
struct device *dev, u32 pasid,
|
||||
bool fault_ignore);
|
||||
int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid);
|
||||
void vcmd_free_pasid(struct intel_iommu *iommu, u32 pasid);
|
||||
void intel_pasid_setup_page_snoop_control(struct intel_iommu *iommu,
|
||||
struct device *dev, u32 pasid);
|
||||
#endif /* __INTEL_PASID_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user