diff options
Diffstat (limited to 'drivers/iommu/intel/iommu.h')
| -rw-r--r-- | drivers/iommu/intel/iommu.h | 37 | 
1 files changed, 18 insertions, 19 deletions
diff --git a/drivers/iommu/intel/iommu.h b/drivers/iommu/intel/iommu.h index d6df3b865812..1c5e1d88862b 100644 --- a/drivers/iommu/intel/iommu.h +++ b/drivers/iommu/intel/iommu.h @@ -19,7 +19,6 @@  #include <linux/iommu.h>  #include <linux/io-64-nonatomic-lo-hi.h>  #include <linux/dmar.h> -#include <linux/ioasid.h>  #include <linux/bitfield.h>  #include <linux/xarray.h>  #include <linux/perf_event.h> @@ -198,7 +197,6 @@  #define ecap_flts(e)		(((e) >> 47) & 0x1)  #define ecap_slts(e)		(((e) >> 46) & 0x1)  #define ecap_slads(e)		(((e) >> 45) & 0x1) -#define ecap_vcs(e)		(((e) >> 44) & 0x1)  #define ecap_smts(e)		(((e) >> 43) & 0x1)  #define ecap_dit(e)		(((e) >> 41) & 0x1)  #define ecap_pds(e)		(((e) >> 42) & 0x1) @@ -641,6 +639,8 @@ struct iommu_pmu {  	DECLARE_BITMAP(used_mask, IOMMU_PMU_IDX_MAX);  	struct perf_event	*event_list[IOMMU_PMU_IDX_MAX];  	unsigned char		irq_name[16]; +	struct hlist_node	cpuhp_node; +	int			cpu;  };  #define IOMMU_IRQ_ID_OFFSET_PRQ		(DMAR_UNITS_SUPPORTED) @@ -676,7 +676,6 @@ struct intel_iommu {  	unsigned char prq_name[16];    /* Name for PRQ interrupt */  	unsigned long prq_seq_number;  	struct completion prq_complete; -	struct ioasid_allocator_ops pasid_allocator; /* Custom allocator for PASIDs */  #endif  	struct iopf_queue *iopf_queue;  	unsigned char iopfq_name[16]; @@ -796,18 +795,18 @@ static inline bool context_present(struct context_entry *context)  	return (context->lo & 1);  } -extern struct dmar_drhd_unit * dmar_find_matched_drhd_unit(struct pci_dev *dev); +struct dmar_drhd_unit *dmar_find_matched_drhd_unit(struct pci_dev *dev); -extern int dmar_enable_qi(struct intel_iommu *iommu); -extern void dmar_disable_qi(struct intel_iommu *iommu); -extern int dmar_reenable_qi(struct intel_iommu *iommu); -extern void qi_global_iec(struct intel_iommu *iommu); +int dmar_enable_qi(struct intel_iommu *iommu); +void dmar_disable_qi(struct intel_iommu *iommu); +int dmar_reenable_qi(struct intel_iommu *iommu); +void qi_global_iec(struct intel_iommu *iommu); -extern void qi_flush_context(struct intel_iommu *iommu, u16 did, u16 sid, -			     u8 fm, u64 type); -extern void qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, -			  unsigned int size_order, u64 type); -extern void qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 pfsid, +void qi_flush_context(struct intel_iommu *iommu, u16 did, +		      u16 sid, u8 fm, u64 type); +void qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, +		    unsigned int size_order, u64 type); +void qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 pfsid,  			u16 qdep, u64 addr, unsigned mask);  void qi_flush_piotlb(struct intel_iommu *iommu, u16 did, u32 pasid, u64 addr, @@ -830,7 +829,7 @@ int qi_submit_sync(struct intel_iommu *iommu, struct qi_desc *desc,   */  #define QI_OPT_WAIT_DRAIN		BIT(0) -extern int dmar_ir_support(void); +int dmar_ir_support(void);  void *alloc_pgtable_page(int node, gfp_t gfp);  void free_pgtable_page(void *vaddr); @@ -838,9 +837,9 @@ void iommu_flush_write_buffer(struct intel_iommu *iommu);  struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn);  #ifdef CONFIG_INTEL_IOMMU_SVM -extern void intel_svm_check(struct intel_iommu *iommu); -extern int intel_svm_enable_prq(struct intel_iommu *iommu); -extern int intel_svm_finish_prq(struct intel_iommu *iommu); +void intel_svm_check(struct intel_iommu *iommu); +int intel_svm_enable_prq(struct intel_iommu *iommu); +int intel_svm_finish_prq(struct intel_iommu *iommu);  int intel_svm_page_response(struct device *dev, struct iommu_fault_event *evt,  			    struct iommu_page_response *msg);  struct iommu_domain *intel_svm_domain_alloc(void); @@ -887,8 +886,8 @@ extern const struct iommu_ops intel_iommu_ops;  #ifdef CONFIG_INTEL_IOMMU  extern int intel_iommu_sm; -extern int iommu_calculate_agaw(struct intel_iommu *iommu); -extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu); +int iommu_calculate_agaw(struct intel_iommu *iommu); +int iommu_calculate_max_sagaw(struct intel_iommu *iommu);  int ecmd_submit_sync(struct intel_iommu *iommu, u8 ecmd, u64 oa, u64 ob);  static inline bool ecmd_has_pmu_essential(struct intel_iommu *iommu)  |