Skip to content

Commit d2b6690

Browse files
LuBaolujoergroedel
authored andcommitted
iommu/vt-d: Remove unused vcmd interfaces
Commit 99b5726 ("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>
1 parent 47642bd commit d2b6690

4 files changed

Lines changed: 0 additions & 75 deletions

File tree

drivers/iommu/intel/debugfs.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,6 @@ static const struct iommu_regset iommu_regs_64[] = {
106106
IOMMU_REGSET_ENTRY(MTRR_PHYSMASK8),
107107
IOMMU_REGSET_ENTRY(MTRR_PHYSBASE9),
108108
IOMMU_REGSET_ENTRY(MTRR_PHYSMASK9),
109-
IOMMU_REGSET_ENTRY(VCCAP),
110-
IOMMU_REGSET_ENTRY(VCMD),
111-
IOMMU_REGSET_ENTRY(VCRSP),
112109
};
113110

114111
static struct dentry *intel_iommu_debug;

drivers/iommu/intel/iommu.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,6 @@
140140
#define DMAR_ECEO_REG 0x408
141141
#define DMAR_ECRSP_REG 0x410
142142
#define DMAR_ECCAP_REG 0x430
143-
#define DMAR_VCCAP_REG 0xe30 /* Virtual command capability register */
144-
#define DMAR_VCMD_REG 0xe00 /* Virtual command register */
145-
#define DMAR_VCRSP_REG 0xe10 /* Virtual command response register */
146143

147144
#define DMAR_IQER_REG_IQEI(reg) FIELD_GET(GENMASK_ULL(3, 0), reg)
148145
#define DMAR_IQER_REG_ITESID(reg) FIELD_GET(GENMASK_ULL(47, 32), reg)

drivers/iommu/intel/pasid.c

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -26,63 +26,6 @@
2626
*/
2727
u32 intel_pasid_max_id = PASID_MAX;
2828

29-
int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid)
30-
{
31-
unsigned long flags;
32-
u8 status_code;
33-
int ret = 0;
34-
u64 res;
35-
36-
raw_spin_lock_irqsave(&iommu->register_lock, flags);
37-
dmar_writeq(iommu->reg + DMAR_VCMD_REG, VCMD_CMD_ALLOC);
38-
IOMMU_WAIT_OP(iommu, DMAR_VCRSP_REG, dmar_readq,
39-
!(res & VCMD_VRSP_IP), res);
40-
raw_spin_unlock_irqrestore(&iommu->register_lock, flags);
41-
42-
status_code = VCMD_VRSP_SC(res);
43-
switch (status_code) {
44-
case VCMD_VRSP_SC_SUCCESS:
45-
*pasid = VCMD_VRSP_RESULT_PASID(res);
46-
break;
47-
case VCMD_VRSP_SC_NO_PASID_AVAIL:
48-
pr_info("IOMMU: %s: No PASID available\n", iommu->name);
49-
ret = -ENOSPC;
50-
break;
51-
default:
52-
ret = -ENODEV;
53-
pr_warn("IOMMU: %s: Unexpected error code %d\n",
54-
iommu->name, status_code);
55-
}
56-
57-
return ret;
58-
}
59-
60-
void vcmd_free_pasid(struct intel_iommu *iommu, u32 pasid)
61-
{
62-
unsigned long flags;
63-
u8 status_code;
64-
u64 res;
65-
66-
raw_spin_lock_irqsave(&iommu->register_lock, flags);
67-
dmar_writeq(iommu->reg + DMAR_VCMD_REG,
68-
VCMD_CMD_OPERAND(pasid) | VCMD_CMD_FREE);
69-
IOMMU_WAIT_OP(iommu, DMAR_VCRSP_REG, dmar_readq,
70-
!(res & VCMD_VRSP_IP), res);
71-
raw_spin_unlock_irqrestore(&iommu->register_lock, flags);
72-
73-
status_code = VCMD_VRSP_SC(res);
74-
switch (status_code) {
75-
case VCMD_VRSP_SC_SUCCESS:
76-
break;
77-
case VCMD_VRSP_SC_INVALID_PASID:
78-
pr_info("IOMMU: %s: Invalid PASID\n", iommu->name);
79-
break;
80-
default:
81-
pr_warn("IOMMU: %s: Unexpected error code %d\n",
82-
iommu->name, status_code);
83-
}
84-
}
85-
8629
/*
8730
* Per device pasid table management:
8831
*/

drivers/iommu/intel/pasid.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,6 @@
2222
#define is_pasid_enabled(entry) (((entry)->lo >> 3) & 0x1)
2323
#define get_pasid_dir_size(entry) (1 << ((((entry)->lo >> 9) & 0x7) + 7))
2424

25-
/* Virtual command interface for enlightened pasid management. */
26-
#define VCMD_CMD_ALLOC 0x1
27-
#define VCMD_CMD_FREE 0x2
28-
#define VCMD_VRSP_IP 0x1
29-
#define VCMD_VRSP_SC(e) (((e) & 0xff) >> 1)
30-
#define VCMD_VRSP_SC_SUCCESS 0
31-
#define VCMD_VRSP_SC_NO_PASID_AVAIL 16
32-
#define VCMD_VRSP_SC_INVALID_PASID 16
33-
#define VCMD_VRSP_RESULT_PASID(e) (((e) >> 16) & 0xfffff)
34-
#define VCMD_CMD_OPERAND(e) ((e) << 16)
3525
/*
3626
* Domain ID reserved for pasid entries programmed for first-level
3727
* only and pass-through transfer modes.
@@ -117,8 +107,6 @@ int intel_pasid_setup_nested(struct intel_iommu *iommu, struct device *dev,
117107
void intel_pasid_tear_down_entry(struct intel_iommu *iommu,
118108
struct device *dev, u32 pasid,
119109
bool fault_ignore);
120-
int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid);
121-
void vcmd_free_pasid(struct intel_iommu *iommu, u32 pasid);
122110
void intel_pasid_setup_page_snoop_control(struct intel_iommu *iommu,
123111
struct device *dev, u32 pasid);
124112
#endif /* __INTEL_PASID_H */

0 commit comments

Comments
 (0)