Re: [PATCH v5 1/8] interconnect: Add generic on-chip interconnect API
From: Vincent Guittot
Date: Mon Jul 02 2018 - 03:23:52 EST
On Sun, 1 Jul 2018 at 13:09, Georgi Djakov <georgi.djakov@xxxxxxxxxx> wrote:
>
> Hi Vincent,
>
> On 27.06.18 Ð. 9:19, Vincent Guittot wrote:
> > Hi Georgi
> >
> > On Wed, 20 Jun 2018 at 14:11, Georgi Djakov <georgi.djakov@xxxxxxxxxx> wrote:
> >
> > [snip]
> >
> >> +
> >> +static struct icc_path *path_allocate(struct icc_node *dst, ssize_t num_nodes)
> >> +{
> >> + struct icc_node *node = dst;
> >> + struct icc_path *path;
> >> + size_t i;
> >> +
> >> + path = kzalloc(sizeof(*path) + num_nodes * sizeof(*path->reqs),
> >
> > Should be (num_nodes -1) * sizeof(*path->reqs) as there is already 1
> > icc_req in icc_path struct
>
> reqs[] is a flexible array member and it's size is not included in
> sizeof(*path)
ah yes, my eyes saw "struct icc_req reqs[0];" but my brain was
reading "struct icc_req reqs[1]"
Sorry for the noise
>
> Thanks,
> Georgi
>
> >> + GFP_KERNEL);
> >> + if (!path)
> >> + return ERR_PTR(-ENOMEM);
> >> +
> >> + path->num_nodes = num_nodes;
> >> +
> >> + for (i = 0; i < num_nodes; i++) {
> >> + hlist_add_head(&path->reqs[i].req_node, &node->req_list);
> >> +
> >> + path->reqs[i].node = node;
> >> + /* reference to previous node was saved during path traversal */
> >> + node = node->reverse;
> >> + }
> >> +
> >> + return path;
> >> +}
> >> +
> >
> > [snip]
> >
>