diff options
| -rw-r--r-- | drivers/iommu/intel-iommu.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index a8f7ae0eb7a4..238ad3447712 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c | |||
| @@ -4730,11 +4730,16 @@ static int intel_iommu_cpu_dead(unsigned int cpu) | |||
| 4730 | return 0; | 4730 | return 0; |
| 4731 | } | 4731 | } |
| 4732 | 4732 | ||
| 4733 | static inline struct intel_iommu *dev_to_intel_iommu(struct device *dev) | ||
| 4734 | { | ||
| 4735 | return container_of(dev, struct intel_iommu, iommu.dev); | ||
| 4736 | } | ||
| 4737 | |||
| 4733 | static ssize_t intel_iommu_show_version(struct device *dev, | 4738 | static ssize_t intel_iommu_show_version(struct device *dev, |
| 4734 | struct device_attribute *attr, | 4739 | struct device_attribute *attr, |
| 4735 | char *buf) | 4740 | char *buf) |
| 4736 | { | 4741 | { |
| 4737 | struct intel_iommu *iommu = dev_get_drvdata(dev); | 4742 | struct intel_iommu *iommu = dev_to_intel_iommu(dev); |
| 4738 | u32 ver = readl(iommu->reg + DMAR_VER_REG); | 4743 | u32 ver = readl(iommu->reg + DMAR_VER_REG); |
| 4739 | return sprintf(buf, "%d:%d\n", | 4744 | return sprintf(buf, "%d:%d\n", |
| 4740 | DMAR_VER_MAJOR(ver), DMAR_VER_MINOR(ver)); | 4745 | DMAR_VER_MAJOR(ver), DMAR_VER_MINOR(ver)); |
| @@ -4745,7 +4750,7 @@ static ssize_t intel_iommu_show_address(struct device *dev, | |||
| 4745 | struct device_attribute *attr, | 4750 | struct device_attribute *attr, |
| 4746 | char *buf) | 4751 | char *buf) |
| 4747 | { | 4752 | { |
| 4748 | struct intel_iommu *iommu = dev_get_drvdata(dev); | 4753 | struct intel_iommu *iommu = dev_to_intel_iommu(dev); |
| 4749 | return sprintf(buf, "%llx\n", iommu->reg_phys); | 4754 | return sprintf(buf, "%llx\n", iommu->reg_phys); |
| 4750 | } | 4755 | } |
| 4751 | static DEVICE_ATTR(address, S_IRUGO, intel_iommu_show_address, NULL); | 4756 | static DEVICE_ATTR(address, S_IRUGO, intel_iommu_show_address, NULL); |
| @@ -4754,7 +4759,7 @@ static ssize_t intel_iommu_show_cap(struct device *dev, | |||
| 4754 | struct device_attribute *attr, | 4759 | struct device_attribute *attr, |
| 4755 | char *buf) | 4760 | char *buf) |
| 4756 | { | 4761 | { |
| 4757 | struct intel_iommu *iommu = dev_get_drvdata(dev); | 4762 | struct intel_iommu *iommu = dev_to_intel_iommu(dev); |
| 4758 | return sprintf(buf, "%llx\n", iommu->cap); | 4763 | return sprintf(buf, "%llx\n", iommu->cap); |
| 4759 | } | 4764 | } |
| 4760 | static DEVICE_ATTR(cap, S_IRUGO, intel_iommu_show_cap, NULL); | 4765 | static DEVICE_ATTR(cap, S_IRUGO, intel_iommu_show_cap, NULL); |
| @@ -4763,7 +4768,7 @@ static ssize_t intel_iommu_show_ecap(struct device *dev, | |||
| 4763 | struct device_attribute *attr, | 4768 | struct device_attribute *attr, |
| 4764 | char *buf) | 4769 | char *buf) |
| 4765 | { | 4770 | { |
| 4766 | struct intel_iommu *iommu = dev_get_drvdata(dev); | 4771 | struct intel_iommu *iommu = dev_to_intel_iommu(dev); |
| 4767 | return sprintf(buf, "%llx\n", iommu->ecap); | 4772 | return sprintf(buf, "%llx\n", iommu->ecap); |
| 4768 | } | 4773 | } |
| 4769 | static DEVICE_ATTR(ecap, S_IRUGO, intel_iommu_show_ecap, NULL); | 4774 | static DEVICE_ATTR(ecap, S_IRUGO, intel_iommu_show_ecap, NULL); |
| @@ -4772,7 +4777,7 @@ static ssize_t intel_iommu_show_ndoms(struct device *dev, | |||
| 4772 | struct device_attribute *attr, | 4777 | struct device_attribute *attr, |
| 4773 | char *buf) | 4778 | char *buf) |
| 4774 | { | 4779 | { |
| 4775 | struct intel_iommu *iommu = dev_get_drvdata(dev); | 4780 | struct intel_iommu *iommu = dev_to_intel_iommu(dev); |
| 4776 | return sprintf(buf, "%ld\n", cap_ndoms(iommu->cap)); | 4781 | return sprintf(buf, "%ld\n", cap_ndoms(iommu->cap)); |
| 4777 | } | 4782 | } |
| 4778 | static DEVICE_ATTR(domains_supported, S_IRUGO, intel_iommu_show_ndoms, NULL); | 4783 | static DEVICE_ATTR(domains_supported, S_IRUGO, intel_iommu_show_ndoms, NULL); |
| @@ -4781,7 +4786,7 @@ static ssize_t intel_iommu_show_ndoms_used(struct device *dev, | |||
| 4781 | struct device_attribute *attr, | 4786 | struct device_attribute *attr, |
| 4782 | char *buf) | 4787 | char *buf) |
| 4783 | { | 4788 | { |
| 4784 | struct intel_iommu *iommu = dev_get_drvdata(dev); | 4789 | struct intel_iommu *iommu = dev_to_intel_iommu(dev); |
| 4785 | return sprintf(buf, "%d\n", bitmap_weight(iommu->domain_ids, | 4790 | return sprintf(buf, "%d\n", bitmap_weight(iommu->domain_ids, |
| 4786 | cap_ndoms(iommu->cap))); | 4791 | cap_ndoms(iommu->cap))); |
| 4787 | } | 4792 | } |
