mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-27 00:04:47 +08:00
cxl/pci: Ignore unknown register block types
In an effort to explicit avoid supporting vendor specific register blocks (which can happily be mapped from userspace), entirely skip probing unknown types. The secondary benefit of this will be revealed in the future with code simplification. Signed-off-by: Ben Widawsky <ben.widawsky@intel.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Link: https://lore.kernel.org/r/20210716231548.174778-2-ben.widawsky@intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
3d135db510
commit
1e39db573e
@ -1118,14 +1118,6 @@ static int cxl_mem_setup_regs(struct cxl_mem *cxlm)
|
||||
u64 offset;
|
||||
u8 bar;
|
||||
|
||||
map = kzalloc(sizeof(*map), GFP_KERNEL);
|
||||
if (!map) {
|
||||
ret = -ENOMEM;
|
||||
goto free_maps;
|
||||
}
|
||||
|
||||
list_add(&map->list, ®ister_maps);
|
||||
|
||||
pci_read_config_dword(pdev, regloc, ®_lo);
|
||||
pci_read_config_dword(pdev, regloc + 4, ®_hi);
|
||||
|
||||
@ -1135,6 +1127,18 @@ static int cxl_mem_setup_regs(struct cxl_mem *cxlm)
|
||||
dev_dbg(dev, "Found register block in bar %u @ 0x%llx of type %u\n",
|
||||
bar, offset, reg_type);
|
||||
|
||||
/* Ignore unknown register block types */
|
||||
if (reg_type > CXL_REGLOC_RBI_MEMDEV)
|
||||
continue;
|
||||
|
||||
map = kzalloc(sizeof(*map), GFP_KERNEL);
|
||||
if (!map) {
|
||||
ret = -ENOMEM;
|
||||
goto free_maps;
|
||||
}
|
||||
|
||||
list_add(&map->list, ®ister_maps);
|
||||
|
||||
base = cxl_mem_map_regblock(cxlm, bar, offset);
|
||||
if (!base) {
|
||||
ret = -ENOMEM;
|
||||
|
Loading…
Reference in New Issue
Block a user