Skip to content

Commit c66650d

Browse files
keesdjbw
authored andcommitted
cxl/acpi: Annotate struct cxl_cxims_data with __counted_by
Prepare for the coming implementation by GCC and Clang of the __counted_by attribute. Flexible array members annotated with __counted_by can have their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family functions). As found with Coccinelle[1], add __counted_by for struct cxl_cxims_data. Additionally, since the element count member must be set before accessing the annotated flexible array member, move its initialization earlier. [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci Cc: Davidlohr Bueso <[email protected]> Cc: Jonathan Cameron <[email protected]> Cc: Dave Jiang <[email protected]> Cc: Alison Schofield <[email protected]> Cc: Vishal Verma <[email protected]> Cc: Ira Weiny <[email protected]> Cc: Dan Williams <[email protected]> Cc: [email protected] Signed-off-by: Kees Cook <[email protected]> Reviewed-by: Vishal Verma <[email protected]> Reviewed-by: Dave Jiang <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Dan Williams <[email protected]>
1 parent a76b625 commit c66650d

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/cxl/acpi.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
struct cxl_cxims_data {
1616
int nr_maps;
17-
u64 xormaps[];
17+
u64 xormaps[] __counted_by(nr_maps);
1818
};
1919

2020
/*
@@ -112,9 +112,9 @@ static int cxl_parse_cxims(union acpi_subtable_headers *header, void *arg,
112112
GFP_KERNEL);
113113
if (!cximsd)
114114
return -ENOMEM;
115+
cximsd->nr_maps = nr_maps;
115116
memcpy(cximsd->xormaps, cxims->xormap_list,
116117
nr_maps * sizeof(*cximsd->xormaps));
117-
cximsd->nr_maps = nr_maps;
118118
cxlrd->platform_data = cximsd;
119119

120120
return 0;

0 commit comments

Comments
 (0)