On Mon, Jul 27, 2020 at 12:28 PM Roman Gushchin <guro@xxxxxx> wrote: > > Account memory used by the socket storage. > > Signed-off-by: Roman Gushchin <guro@xxxxxx> Acked-by: Song Liu <songliubraving@xxxxxx> > --- > net/core/bpf_sk_storage.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/net/core/bpf_sk_storage.c b/net/core/bpf_sk_storage.c > index eafcd15e7dfd..fbcd03cd00d3 100644 > --- a/net/core/bpf_sk_storage.c > +++ b/net/core/bpf_sk_storage.c > @@ -130,7 +130,8 @@ static struct bpf_sk_storage_elem *selem_alloc(struct bpf_sk_storage_map *smap, > if (charge_omem && omem_charge(sk, smap->elem_size)) > return NULL; > > - selem = kzalloc(smap->elem_size, GFP_ATOMIC | __GFP_NOWARN); > + selem = kzalloc(smap->elem_size, > + GFP_ATOMIC | __GFP_NOWARN | __GFP_ACCOUNT); > if (selem) { > if (value) > memcpy(SDATA(selem)->data, value, smap->map.value_size); > @@ -337,7 +338,8 @@ static int sk_storage_alloc(struct sock *sk, > if (err) > return err; > > - sk_storage = kzalloc(sizeof(*sk_storage), GFP_ATOMIC | __GFP_NOWARN); > + sk_storage = kzalloc(sizeof(*sk_storage), > + GFP_ATOMIC | __GFP_NOWARN | __GFP_ACCOUNT); > if (!sk_storage) { > err = -ENOMEM; > goto uncharge; > @@ -677,7 +679,7 @@ static struct bpf_map *bpf_sk_storage_map_alloc(union bpf_attr *attr) > u64 cost; > int ret; > > - smap = kzalloc(sizeof(*smap), GFP_USER | __GFP_NOWARN); > + smap = kzalloc(sizeof(*smap), GFP_USER | __GFP_NOWARN | __GFP_ACCOUNT); > if (!smap) > return ERR_PTR(-ENOMEM); > bpf_map_init_from_attr(&smap->map, attr); > @@ -695,7 +697,7 @@ static struct bpf_map *bpf_sk_storage_map_alloc(union bpf_attr *attr) > } > > smap->buckets = kvcalloc(sizeof(*smap->buckets), nbuckets, > - GFP_USER | __GFP_NOWARN); > + GFP_USER | __GFP_NOWARN | __GFP_ACCOUNT); > if (!smap->buckets) { > bpf_map_charge_finish(&smap->map.memory); > kfree(smap); > @@ -1024,7 +1026,7 @@ bpf_sk_storage_diag_alloc(const struct nlattr *nla_stgs) > } > > diag = kzalloc(sizeof(*diag) + sizeof(diag->maps[0]) * nr_maps, > - GFP_KERNEL); > + GFP_KERNEL | __GFP_ACCOUNT); > if (!diag) > return ERR_PTR(-ENOMEM); > > -- > 2.26.2 >