From: kernel test robot <lkp@intel.com>
To: cros-kernel-buildreports@googlegroups.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [android-common:android15-6.6-desktop-pkvm-ia-2024-15-11-v1 128/259] drivers/iommu/intel/perfmon.c:118:66: warning: cast from pointer to integer of different size
Date: Sun, 17 Nov 2024 01:15:38 +0800 [thread overview]
Message-ID: <202411170125.RTviNWLT-lkp@intel.com> (raw)
tree: https://android.googlesource.com/kernel/common android15-6.6-desktop-pkvm-ia-2024-15-11-v1
head: ab957086535d11209d7d6dd96172900d714fb5fb
commit: c8db8e13a5473ce640ddcbefc6adafa32c41c9dd [128/259] ANDROID: IOMMU: use dmar_read/write wrapper for MMIO accessing
config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20241117/202411170125.RTviNWLT-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241117/202411170125.RTviNWLT-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411170125.RTviNWLT-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/iommu/intel/perfmon.c:10:
drivers/iommu/intel/perfmon.c: In function 'iommu_pmu_event_update':
>> drivers/iommu/intel/perfmon.c:118:66: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
118 | #define dmar_pmu_readq(pmu, o) dmar_readq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:149:51: note: in definition of macro 'dmar_readq'
149 | #define dmar_readq(iommu, o) readq((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:336:21: note: in expansion of macro 'dmar_pmu_readq'
336 | new_count = dmar_pmu_readq(iommu_pmu, iommu_event_base(iommu_pmu, hwc->idx));
| ^~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:118:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
118 | #define dmar_pmu_readq(pmu, o) dmar_readq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:149:51: note: in definition of macro 'dmar_readq'
149 | #define dmar_readq(iommu, o) readq((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:336:21: note: in expansion of macro 'dmar_pmu_readq'
336 | new_count = dmar_pmu_readq(iommu_pmu, iommu_event_base(iommu_pmu, hwc->idx));
| ^~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c: In function 'iommu_pmu_start':
>> drivers/iommu/intel/perfmon.c:118:66: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
118 | #define dmar_pmu_readq(pmu, o) dmar_readq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:149:51: note: in definition of macro 'dmar_readq'
149 | #define dmar_readq(iommu, o) readq((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:369:17: note: in expansion of macro 'dmar_pmu_readq'
369 | count = dmar_pmu_readq(iommu_pmu, iommu_event_base(iommu_pmu, hwc->idx));
| ^~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:118:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
118 | #define dmar_pmu_readq(pmu, o) dmar_readq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:149:51: note: in definition of macro 'dmar_readq'
149 | #define dmar_readq(iommu, o) readq((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:369:17: note: in expansion of macro 'dmar_pmu_readq'
369 | count = dmar_pmu_readq(iommu_pmu, iommu_event_base(iommu_pmu, hwc->idx));
| ^~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c: In function 'iommu_pmu_assign_event':
drivers/iommu/intel/perfmon.c:119:67: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
119 | #define dmar_pmu_writeq(pmu, o, v) dmar_writeq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:150:59: note: in definition of macro 'dmar_writeq'
150 | #define dmar_writeq(iommu, o, v) writeq(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:440:9: note: in expansion of macro 'dmar_pmu_writeq'
440 | dmar_pmu_writeq(iommu_pmu, iommu_config_base(iommu_pmu, idx), hwc->config);
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:119:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
119 | #define dmar_pmu_writeq(pmu, o, v) dmar_writeq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:150:59: note: in definition of macro 'dmar_writeq'
150 | #define dmar_writeq(iommu, o, v) writeq(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:440:9: note: in expansion of macro 'dmar_pmu_writeq'
440 | dmar_pmu_writeq(iommu_pmu, iommu_config_base(iommu_pmu, idx), hwc->config);
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:67: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:126:17: note: in expansion of macro 'dmar_pmu_writel'
126 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:442:9: note: in expansion of macro 'iommu_pmu_set_filter'
442 | iommu_pmu_set_filter(requester_id, event->attr.config1,
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:126:17: note: in expansion of macro 'dmar_pmu_writel'
126 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:442:9: note: in expansion of macro 'iommu_pmu_set_filter'
442 | iommu_pmu_set_filter(requester_id, event->attr.config1,
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:67: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:126:17: note: in expansion of macro 'dmar_pmu_writel'
126 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:445:9: note: in expansion of macro 'iommu_pmu_set_filter'
445 | iommu_pmu_set_filter(domain, event->attr.config1,
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:126:17: note: in expansion of macro 'dmar_pmu_writel'
126 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:445:9: note: in expansion of macro 'iommu_pmu_set_filter'
445 | iommu_pmu_set_filter(domain, event->attr.config1,
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:67: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:126:17: note: in expansion of macro 'dmar_pmu_writel'
126 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:448:9: note: in expansion of macro 'iommu_pmu_set_filter'
448 | iommu_pmu_set_filter(pasid, event->attr.config2,
| ^~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
--
drivers/iommu/intel/perfmon.c:486:9: note: in expansion of macro 'iommu_pmu_clear_filter'
486 | iommu_pmu_clear_filter(IOMMU_PMU_FILTER_REQUESTER_ID, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:67: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:137:17: note: in expansion of macro 'dmar_pmu_writel'
137 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:487:9: note: in expansion of macro 'iommu_pmu_clear_filter'
487 | iommu_pmu_clear_filter(IOMMU_PMU_FILTER_DOMAIN, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:137:17: note: in expansion of macro 'dmar_pmu_writel'
137 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:487:9: note: in expansion of macro 'iommu_pmu_clear_filter'
487 | iommu_pmu_clear_filter(IOMMU_PMU_FILTER_DOMAIN, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:67: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:137:17: note: in expansion of macro 'dmar_pmu_writel'
137 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:488:9: note: in expansion of macro 'iommu_pmu_clear_filter'
488 | iommu_pmu_clear_filter(IOMMU_PMU_FILTER_PASID, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:137:17: note: in expansion of macro 'dmar_pmu_writel'
137 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:488:9: note: in expansion of macro 'iommu_pmu_clear_filter'
488 | iommu_pmu_clear_filter(IOMMU_PMU_FILTER_PASID, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:67: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:137:17: note: in expansion of macro 'dmar_pmu_writel'
137 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:489:9: note: in expansion of macro 'iommu_pmu_clear_filter'
489 | iommu_pmu_clear_filter(IOMMU_PMU_FILTER_ATS, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:137:17: note: in expansion of macro 'dmar_pmu_writel'
137 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:489:9: note: in expansion of macro 'iommu_pmu_clear_filter'
489 | iommu_pmu_clear_filter(IOMMU_PMU_FILTER_ATS, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:67: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:137:17: note: in expansion of macro 'dmar_pmu_writel'
137 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:490:9: note: in expansion of macro 'iommu_pmu_clear_filter'
490 | iommu_pmu_clear_filter(IOMMU_PMU_FILTER_PAGE_TABLE, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:121:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
121 | #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:152:59: note: in definition of macro 'dmar_writel'
152 | #define dmar_writel(iommu, o, v) writel(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:137:17: note: in expansion of macro 'dmar_pmu_writel'
137 | dmar_pmu_writel(iommu_pmu, \
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:490:9: note: in expansion of macro 'iommu_pmu_clear_filter'
490 | iommu_pmu_clear_filter(IOMMU_PMU_FILTER_PAGE_TABLE, idx);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c: In function 'iommu_pmu_counter_overflow':
>> drivers/iommu/intel/perfmon.c:118:66: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
118 | #define dmar_pmu_readq(pmu, o) dmar_readq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:149:51: note: in definition of macro 'dmar_readq'
149 | #define dmar_readq(iommu, o) readq((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:525:26: note: in expansion of macro 'dmar_pmu_readq'
525 | while ((status = dmar_pmu_readq(iommu_pmu, iommu_pmu->overflow))) {
| ^~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:118:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
118 | #define dmar_pmu_readq(pmu, o) dmar_readq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:149:51: note: in definition of macro 'dmar_readq'
149 | #define dmar_readq(iommu, o) readq((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:525:26: note: in expansion of macro 'dmar_pmu_readq'
525 | while ((status = dmar_pmu_readq(iommu_pmu, iommu_pmu->overflow))) {
| ^~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:119:67: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
119 | #define dmar_pmu_writeq(pmu, o, v) dmar_writeq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:150:59: note: in definition of macro 'dmar_writeq'
150 | #define dmar_writeq(iommu, o, v) writeq(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:539:17: note: in expansion of macro 'dmar_pmu_writeq'
539 | dmar_pmu_writeq(iommu_pmu, iommu_pmu->overflow, status);
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:119:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
119 | #define dmar_pmu_writeq(pmu, o, v) dmar_writeq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
| ^
drivers/iommu/intel/iommu.h:150:59: note: in definition of macro 'dmar_writeq'
150 | #define dmar_writeq(iommu, o, v) writeq(v, (iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:539:17: note: in expansion of macro 'dmar_pmu_writeq'
539 | dmar_pmu_writeq(iommu_pmu, iommu_pmu->overflow, status);
| ^~~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c: In function 'alloc_iommu_pmu':
drivers/iommu/intel/perfmon.c:120:66: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
120 | #define dmar_pmu_readl(pmu, o) dmar_readl((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:151:51: note: in definition of macro 'dmar_readl'
151 | #define dmar_readl(iommu, o) readl((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:679:23: note: in expansion of macro 'dmar_pmu_readl'
679 | cap = dmar_pmu_readl(iommu_pmu, iommu_pmu->cfg_reg +
| ^~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:120:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
120 | #define dmar_pmu_readl(pmu, o) dmar_readl((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:151:51: note: in definition of macro 'dmar_readl'
151 | #define dmar_readl(iommu, o) readl((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:679:23: note: in expansion of macro 'dmar_pmu_readl'
679 | cap = dmar_pmu_readl(iommu_pmu, iommu_pmu->cfg_reg +
| ^~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:120:66: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
120 | #define dmar_pmu_readl(pmu, o) dmar_readl((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:151:51: note: in definition of macro 'dmar_readl'
151 | #define dmar_readl(iommu, o) readl((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:703:31: note: in expansion of macro 'dmar_pmu_readl'
703 | cap = dmar_pmu_readl(iommu_pmu, iommu_pmu->cfg_reg + i * IOMMU_PMU_CFG_OFFSET +
| ^~~~~~~~~~~~~~
drivers/iommu/intel/perfmon.c:120:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
120 | #define dmar_pmu_readl(pmu, o) dmar_readl((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
| ^
drivers/iommu/intel/iommu.h:151:51: note: in definition of macro 'dmar_readl'
151 | #define dmar_readl(iommu, o) readl((iommu)->reg + o)
| ^
drivers/iommu/intel/perfmon.c:703:31: note: in expansion of macro 'dmar_pmu_readl'
703 | cap = dmar_pmu_readl(iommu_pmu, iommu_pmu->cfg_reg + i * IOMMU_PMU_CFG_OFFSET +
| ^~~~~~~~~~~~~~
vim +118 drivers/iommu/intel/perfmon.c
8
9 #include <linux/dmar.h>
> 10 #include "iommu.h"
11 #include "perfmon.h"
12
13 PMU_FORMAT_ATTR(event, "config:0-27"); /* ES: Events Select */
14 PMU_FORMAT_ATTR(event_group, "config:28-31"); /* EGI: Event Group Index */
15
16 static struct attribute *iommu_pmu_format_attrs[] = {
17 &format_attr_event_group.attr,
18 &format_attr_event.attr,
19 NULL
20 };
21
22 static struct attribute_group iommu_pmu_format_attr_group = {
23 .name = "format",
24 .attrs = iommu_pmu_format_attrs,
25 };
26
27 /* The available events are added in attr_update later */
28 static struct attribute *attrs_empty[] = {
29 NULL
30 };
31
32 static struct attribute_group iommu_pmu_events_attr_group = {
33 .name = "events",
34 .attrs = attrs_empty,
35 };
36
37 static cpumask_t iommu_pmu_cpu_mask;
38
39 static ssize_t
40 cpumask_show(struct device *dev, struct device_attribute *attr, char *buf)
41 {
42 return cpumap_print_to_pagebuf(true, buf, &iommu_pmu_cpu_mask);
43 }
44 static DEVICE_ATTR_RO(cpumask);
45
46 static struct attribute *iommu_pmu_cpumask_attrs[] = {
47 &dev_attr_cpumask.attr,
48 NULL
49 };
50
51 static struct attribute_group iommu_pmu_cpumask_attr_group = {
52 .attrs = iommu_pmu_cpumask_attrs,
53 };
54
55 static const struct attribute_group *iommu_pmu_attr_groups[] = {
56 &iommu_pmu_format_attr_group,
57 &iommu_pmu_events_attr_group,
58 &iommu_pmu_cpumask_attr_group,
59 NULL
60 };
61
62 static inline struct iommu_pmu *dev_to_iommu_pmu(struct device *dev)
63 {
64 /*
65 * The perf_event creates its own dev for each PMU.
66 * See pmu_dev_alloc()
67 */
68 return container_of(dev_get_drvdata(dev), struct iommu_pmu, pmu);
69 }
70
71 #define IOMMU_PMU_ATTR(_name, _format, _filter) \
72 PMU_FORMAT_ATTR(_name, _format); \
73 \
74 static struct attribute *_name##_attr[] = { \
75 &format_attr_##_name.attr, \
76 NULL \
77 }; \
78 \
79 static umode_t \
80 _name##_is_visible(struct kobject *kobj, struct attribute *attr, int i) \
81 { \
82 struct device *dev = kobj_to_dev(kobj); \
83 struct iommu_pmu *iommu_pmu = dev_to_iommu_pmu(dev); \
84 \
85 if (!iommu_pmu) \
86 return 0; \
87 return (iommu_pmu->filter & _filter) ? attr->mode : 0; \
88 } \
89 \
90 static struct attribute_group _name = { \
91 .name = "format", \
92 .attrs = _name##_attr, \
93 .is_visible = _name##_is_visible, \
94 };
95
96 IOMMU_PMU_ATTR(filter_requester_id_en, "config1:0", IOMMU_PMU_FILTER_REQUESTER_ID);
97 IOMMU_PMU_ATTR(filter_domain_en, "config1:1", IOMMU_PMU_FILTER_DOMAIN);
98 IOMMU_PMU_ATTR(filter_pasid_en, "config1:2", IOMMU_PMU_FILTER_PASID);
99 IOMMU_PMU_ATTR(filter_ats_en, "config1:3", IOMMU_PMU_FILTER_ATS);
100 IOMMU_PMU_ATTR(filter_page_table_en, "config1:4", IOMMU_PMU_FILTER_PAGE_TABLE);
101 IOMMU_PMU_ATTR(filter_requester_id, "config1:16-31", IOMMU_PMU_FILTER_REQUESTER_ID);
102 IOMMU_PMU_ATTR(filter_domain, "config1:32-47", IOMMU_PMU_FILTER_DOMAIN);
103 IOMMU_PMU_ATTR(filter_pasid, "config2:0-21", IOMMU_PMU_FILTER_PASID);
104 IOMMU_PMU_ATTR(filter_ats, "config2:24-28", IOMMU_PMU_FILTER_ATS);
105 IOMMU_PMU_ATTR(filter_page_table, "config2:32-36", IOMMU_PMU_FILTER_PAGE_TABLE);
106
107 #define iommu_pmu_en_requester_id(e) ((e) & 0x1)
108 #define iommu_pmu_en_domain(e) (((e) >> 1) & 0x1)
109 #define iommu_pmu_en_pasid(e) (((e) >> 2) & 0x1)
110 #define iommu_pmu_en_ats(e) (((e) >> 3) & 0x1)
111 #define iommu_pmu_en_page_table(e) (((e) >> 4) & 0x1)
112 #define iommu_pmu_get_requester_id(filter) (((filter) >> 16) & 0xffff)
113 #define iommu_pmu_get_domain(filter) (((filter) >> 32) & 0xffff)
114 #define iommu_pmu_get_pasid(filter) ((filter) & 0x3fffff)
115 #define iommu_pmu_get_ats(filter) (((filter) >> 24) & 0x1f)
116 #define iommu_pmu_get_page_table(filter) (((filter) >> 32) & 0x1f)
117
> 118 #define dmar_pmu_readq(pmu, o) dmar_readq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
119 #define dmar_pmu_writeq(pmu, o, v) dmar_writeq((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
120 #define dmar_pmu_readl(pmu, o) dmar_readl((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg)
121 #define dmar_pmu_writel(pmu, o, v) dmar_writel((pmu)->iommu, (u64)(o) - (u64)(pmu)->iommu->reg, (v))
122
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2024-11-16 17:15 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202411170125.RTviNWLT-lkp@intel.com \
--to=lkp@intel.com \
--cc=cros-kernel-buildreports@googlegroups.com \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.