mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-09-21 20:22:13 +08:00
ff924ca08e
The struct resource end field signifies the end address not the relative offset from the start field i.e size == (end - start) + 1. Amend the .end field to specify the end address not the relative size from the offset as is currently given. Fixes cocci check: drivers/media/pci/mgb4/mgb4_regs.c:13:22-25: WARNING: Suspicious code. resource_size is maybe missing with res Link: https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-1-3c4865f5a4b0@chromium.org Reviewed-by: Martin Tůma <martin.tuma@digiteqautomotive.com> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
31 lines
717 B
C
31 lines
717 B
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* Copyright (C) 2021-2022 Digiteq Automotive
|
|
* author: Martin Tuma <martin.tuma@digiteqautomotive.com>
|
|
*/
|
|
|
|
#include <linux/ioport.h>
|
|
#include "mgb4_regs.h"
|
|
|
|
int mgb4_regs_map(struct resource *res, struct mgb4_regs *regs)
|
|
{
|
|
regs->mapbase = res->start;
|
|
regs->mapsize = resource_size(res);
|
|
|
|
if (!request_mem_region(regs->mapbase, regs->mapsize, res->name))
|
|
return -EINVAL;
|
|
regs->membase = ioremap(regs->mapbase, regs->mapsize);
|
|
if (!regs->membase) {
|
|
release_mem_region(regs->mapbase, regs->mapsize);
|
|
return -EINVAL;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void mgb4_regs_free(struct mgb4_regs *regs)
|
|
{
|
|
iounmap(regs->membase);
|
|
release_mem_region(regs->mapbase, regs->mapsize);
|
|
}
|