From 9081cea884b5dcb93d60795259605735546d95a7 Mon Sep 17 00:00:00 2001 From: Wang Xin Date: Mon, 1 Dec 2025 17:11:06 +0800 Subject: [PATCH 1/2] obmm: set up default mem allocator granule euleros inclusion category: bugfix bugzilla: https://gitee.com/openeuler/release-management/issues/ID45O2 CVE: NA ------------------------------------------------------------------ This commit fixes default mem allocator granule to make sure that when mem_allocator_granu is not specified, the allocator uses correct default granule, aligning with its expected behavior. Fixes: 84895087fb79 ("obmm: Implement memory pool allocator") Signed-off-by: Wang Xin Signed-off-by: Li Ruilin --- drivers/ub/obmm/ubmempool_allocator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/ub/obmm/ubmempool_allocator.c b/drivers/ub/obmm/ubmempool_allocator.c index a0a3e7060edd..b84ac40e614e 100644 --- a/drivers/ub/obmm/ubmempool_allocator.c +++ b/drivers/ub/obmm/ubmempool_allocator.c @@ -479,7 +479,7 @@ static int init_mem_allocator_granu(enum allocator_id aid) if (!mem_allocator_granu) { if (aid == ALLOCATOR_HUGETLB_PUD) __obmm_memseg_size = PUD_SIZE; - else if (aid == ALLOCATOR_HUGETLB_PMD) + else __obmm_memseg_size = PMD_SIZE; return 0; } -- Gitee From e4409e25a6c271c6a0b0487a4b0eb362d93a2989 Mon Sep 17 00:00:00 2001 From: Li Ruilin Date: Tue, 2 Dec 2025 20:28:18 +0800 Subject: [PATCH 2/2] obmm: remove redundant code and fix log issues euleros inclusion category: bugfix bugzilla: https://gitee.com/openeuler/release-management/issues/ID45O2 CVE: NA This commit fixes several issues with log printing and redundant code. Signed-off-by: Li Ruilin --- drivers/ub/obmm/conti_mem_allocator.c | 4 ++-- drivers/ub/obmm/obmm_core.c | 24 ++++++++++++------------ drivers/ub/obmm/obmm_export.c | 2 +- drivers/ub/obmm/obmm_export_from_pool.c | 2 +- drivers/ub/obmm/obmm_preimport.c | 2 +- drivers/ub/obmm/obmm_shm_dev.c | 9 +++------ 6 files changed, 20 insertions(+), 23 deletions(-) diff --git a/drivers/ub/obmm/conti_mem_allocator.c b/drivers/ub/obmm/conti_mem_allocator.c index 5b3cfe1d1e90..99da67b70730 100644 --- a/drivers/ub/obmm/conti_mem_allocator.c +++ b/drivers/ub/obmm/conti_mem_allocator.c @@ -258,7 +258,7 @@ size_t conti_alloc_memory(struct conti_mem_allocator *allocator, size_t size, spin_lock_irqsave(&allocator->lock, flags); available = conti_get_avail(allocator); if (!allow_slow && available < size) { - pr_err("%s:fast alloc failed. nid: %d, request: 0x%lx, available: 0x%lx", __func__, + pr_err("%s:fast alloc failed. nid: %d, request: 0x%lx, available: 0x%lx\n", __func__, allocator->nid, size, available); spin_unlock_irqrestore(&allocator->lock, flags); goto out_continue_pool; @@ -487,7 +487,7 @@ int conti_mem_allocator_init(struct conti_mem_allocator *allocator, int nid, siz int ret; if (!allocator || !ops) { - pr_err("%s: null pointer.", __func__); + pr_err("%s: null pointer.\n", __func__); return -EINVAL; } if (!ops->need_expand || !ops->expand_size) { diff --git a/drivers/ub/obmm/obmm_core.c b/drivers/ub/obmm/obmm_core.c index ded614003595..c01ac152e5ad 100644 --- a/drivers/ub/obmm/obmm_core.c +++ b/drivers/ub/obmm/obmm_core.c @@ -247,7 +247,7 @@ bool validate_scna(u32 scna) int ret = ub_mem_get_numa_id(scna); if (ret < 0) { - pr_err("%#x is not a known scna, lookup ret=%pe", scna, ERR_PTR(ret)); + pr_err("%#x is not a known scna, lookup ret=%pe\n", scna, ERR_PTR(ret)); return false; } return true; @@ -432,7 +432,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_from_user(&cmd_param.create, (void __user *)arg, sizeof(struct obmm_cmd_export)); if (ret) { - pr_err("failed to load export argument"); + pr_err("failed to load export argument\n"); return -EFAULT; } @@ -443,7 +443,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_to_user((void __user *)arg, &cmd_param.create, sizeof(struct obmm_cmd_export)); if (ret) { - pr_err("failed to write export result"); + pr_err("failed to write export result\n"); return -EFAULT; } } break; @@ -451,7 +451,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_from_user(&cmd_param.import, (void __user *)arg, sizeof(struct obmm_cmd_import)); if (ret) { - pr_err("failed to load import argument"); + pr_err("failed to load import argument\n"); return -EFAULT; } @@ -462,7 +462,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_to_user((void __user *)arg, &cmd_param.import, sizeof(struct obmm_cmd_import)); if (ret) { - pr_err("failed to write import result"); + pr_err("failed to write import result\n"); return -EFAULT; } } break; @@ -470,7 +470,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_from_user(&cmd_param.unexport, (void __user *)arg, sizeof(struct obmm_cmd_unexport)); if (ret) { - pr_err("failed to load unexport argument"); + pr_err("failed to load unexport argument\n"); return -EFAULT; } @@ -480,7 +480,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_from_user(&cmd_param.unimport, (void __user *)arg, sizeof(struct obmm_cmd_unimport)); if (ret) { - pr_err("failed to load unimport argument"); + pr_err("failed to load unimport argument\n"); return -EFAULT; } @@ -490,7 +490,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_from_user(&cmd_param.query, (void __user *)arg, sizeof(struct obmm_cmd_addr_query)); if (ret) { - pr_err("failed to load addr_query argument"); + pr_err("failed to load addr_query argument\n"); return -EFAULT; } @@ -501,7 +501,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_to_user((void __user *)arg, &cmd_param.query, sizeof(struct obmm_cmd_addr_query)); if (ret) { - pr_err("failed to write obmm_query result"); + pr_err("failed to write obmm_query result\n"); return -EFAULT; } } break; @@ -528,7 +528,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_from_user(&cmd_param.preimport, (void __user *)arg, sizeof(struct obmm_cmd_preimport)); if (ret) { - pr_err("failed to load preimport argument"); + pr_err("failed to load preimport argument\n"); return -EFAULT; } @@ -539,7 +539,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_to_user((void __user *)arg, &cmd_param.preimport, sizeof(struct obmm_cmd_preimport)); if (ret) { - pr_err("failed to write preimport result"); + pr_err("failed to write preimport result\n"); return -EFAULT; } } break; @@ -547,7 +547,7 @@ static long obmm_dev_ioctl(struct file *file __always_unused, unsigned int cmd, ret = (int)copy_from_user(&cmd_param.preimport, (void __user *)arg, sizeof(struct obmm_cmd_preimport)); if (ret) { - pr_err("failed to load preimport argument"); + pr_err("failed to load preimport argument\n"); return -EFAULT; } diff --git a/drivers/ub/obmm/obmm_export.c b/drivers/ub/obmm/obmm_export.c index 50f21dde5f62..e1ec90cf15dd 100644 --- a/drivers/ub/obmm/obmm_export.c +++ b/drivers/ub/obmm/obmm_export.c @@ -246,7 +246,7 @@ int set_export_vendor(struct obmm_export_region *e_reg, const void __user *vendo return 0; } if (vendor_len > OBMM_MAX_VENDOR_LEN) { - pr_err("invalid vendor_len = 0x%x, should less than 0x%x", vendor_len, + pr_err("invalid vendor_len = 0x%x, should less than 0x%x\n", vendor_len, OBMM_MAX_VENDOR_LEN); return -EINVAL; } diff --git a/drivers/ub/obmm/obmm_export_from_pool.c b/drivers/ub/obmm/obmm_export_from_pool.c index d2b091bc0724..dabf5373ea2c 100644 --- a/drivers/ub/obmm/obmm_export_from_pool.c +++ b/drivers/ub/obmm/obmm_export_from_pool.c @@ -234,7 +234,7 @@ static int calculate_export_region_size(unsigned long *total_size, } node_set(cmd_export->pxm_numa, nodes); if (!nodes_on_same_package(&nodes)) { - pr_err("Cannot use memory from multiple sockets.\n"); + pr_err("Cannot use memory from multiple sockets or memory and ub controller is from different sockets.\n"); return -EINVAL; } diff --git a/drivers/ub/obmm/obmm_preimport.c b/drivers/ub/obmm/obmm_preimport.c index 76d63159af19..96daafbadcec 100644 --- a/drivers/ub/obmm/obmm_preimport.c +++ b/drivers/ub/obmm/obmm_preimport.c @@ -233,7 +233,7 @@ int obmm_unpreimport(struct obmm_cmd_preimport *cmd) ret = preimport_release_prefilled(cmd->pa, cmd->pa + cmd->length - 1); if (ret == 0) module_put(THIS_MODULE); - pr_info("%s: unpreimport on nid=%d finished.\n", __func__, cmd->numa_id); + pr_info("%s: unpreimport on pa=%#llx finished.\n", __func__, cmd->pa); return ret; } diff --git a/drivers/ub/obmm/obmm_shm_dev.c b/drivers/ub/obmm/obmm_shm_dev.c index f651399e712d..751abee40a02 100644 --- a/drivers/ub/obmm/obmm_shm_dev.c +++ b/drivers/ub/obmm/obmm_shm_dev.c @@ -304,12 +304,12 @@ static int obmm_shm_fops_mmap(struct file *file, struct vm_area_struct *vma) print_mmap_param(file, vma); if (!region_allow_mmap(reg)) { - pr_err("mmap region %d: not allow to be mmaped", reg->regionid); + pr_err("mmap region %d: not allow to be mmaped\n", reg->regionid); return -EPERM; } if (!validate_perm(file, vma->vm_flags)) { - pr_err("mmap region %d: invalid vma permission", reg->regionid); + pr_err("mmap region %d: invalid vma permission\n", reg->regionid); return -EPERM; } @@ -318,7 +318,7 @@ static int obmm_shm_fops_mmap(struct file *file, struct vm_area_struct *vma) offset = vma->vm_pgoff << PAGE_SHIFT; if (offset & OBMM_MMAP_FLAG_HUGETLB_PMD) { - pr_debug("trying hugepage mmap"); + pr_debug("trying hugepage mmap\n"); mmap_granu = OBMM_MMAP_GRANU_PMD; offset &= ~OBMM_MMAP_FLAG_HUGETLB_PMD; } else { @@ -874,9 +874,6 @@ const struct file_operations obmm_shm_fops = { .owner = THIS_MODULE, static void obmm_shm_dev_release(struct device *dev) { - struct obmm_region *reg; - - reg = container_of(dev, struct obmm_region, device); module_put(THIS_MODULE); } -- Gitee