On Fri, 18 Aug 2023 at 07:59, Kees Cook <keescook@xxxxxxxxxxxx> wrote: > > 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 sprd_dma_dev. > > [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci > > Cc: Vinod Koul <vkoul@xxxxxxxxxx> > Cc: Orson Zhai <orsonzhai@xxxxxxxxx> > Cc: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx> > Cc: Chunyan Zhang <zhang.lyra@xxxxxxxxx> > Cc: dmaengine@xxxxxxxxxxxxxxx > Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx> Acked-by: Chunyan Zhang <zhang.lyra@xxxxxxxxx> Thanks, Chunyan > --- > drivers/dma/sprd-dma.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c > index 168aa0bd73a0..07871dcc4593 100644 > --- a/drivers/dma/sprd-dma.c > +++ b/drivers/dma/sprd-dma.c > @@ -212,7 +212,7 @@ struct sprd_dma_dev { > struct clk *ashb_clk; > int irq; > u32 total_chns; > - struct sprd_dma_chn channels[]; > + struct sprd_dma_chn channels[] __counted_by(total_chns); > }; > > static void sprd_dma_free_desc(struct virt_dma_desc *vd); > -- > 2.34.1 >