Commit 11557c1a authored by leoliu-oc's avatar leoliu-oc
Browse files

x86/cpu/zhaoxin: Encapsulate access to kh40000_dma_direct_ops within function

zhaoxin inclusion
category: other
bugzilla: https://gitee.com/openeuler/kernel/issues/I9RPB1


CVE: NA

-----------------

Avoid compilation errors like
'struct device' has no member named 'dma_ops' caused by modifications to
configuration.

Reported-by: default avatarkernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202405202248.hKgUtGVI-lkp@intel.com/


Signed-off-by: default avatarleoliu-oc <leoliu-oc@zhaoxin.com>
parent 8eaba08b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -12,8 +12,8 @@ static inline const struct dma_map_ops *get_arch_dma_ops(void)
#if IS_BUILTIN(CONFIG_INTEL_IOMMU) && IS_BUILTIN(CONFIG_X86_64)

bool is_zhaoxin_kh40000(void);
extern const struct dma_map_ops kh40000_dma_direct_ops;
extern void kh40000_set_iommu_dma_ops(struct device *dev);
void kh40000_set_iommu_dma_ops(struct device *dev);
const struct dma_map_ops *kh40000_get_direct_dma_ops(void);

#endif

+6 −1
Original line number Diff line number Diff line
@@ -724,6 +724,11 @@ bool is_zhaoxin_kh40000(void)
	return zhaoxin_kh40000;
}

__weak const struct dma_map_ops *kh40000_get_direct_dma_ops(void)
{
	return dma_ops;
}

static void __init quirk_zhaoxin_dma_patch(int num, int slot, int func)
{
	u8 revision;
@@ -734,7 +739,7 @@ static void __init quirk_zhaoxin_dma_patch(int num, int slot, int func)
	revision = read_pci_config_byte(num, slot, func, PCI_REVISION_ID);
	if (revision == 0x10) {
		zhaoxin_kh40000 = true;
		dma_ops = &kh40000_dma_direct_ops;
		dma_ops = kh40000_get_direct_dma_ops();
		pr_info("zhaoxin direct dma patch enabled\n");
	}
}
+5 −0
Original line number Diff line number Diff line
@@ -175,6 +175,11 @@ const struct dma_map_ops kh40000_dma_direct_ops = {
	.map_resource		= dma_direct_map_resource,
};

const struct dma_map_ops *kh40000_get_direct_dma_ops(void)
{
	return &kh40000_dma_direct_ops;
}

/* zhaoxin kh-40000 iommu dma ops */
static const struct dma_map_ops *iommu_dma_ops;