Messages in this thread | | | Date | Thu, 29 Jan 2015 08:04:35 -0500 | From | Sasha Levin <> | Subject | Re: [PATCH v3 3/3] mm: cma: release trigger |
| |
On 01/29/2015 02:51 AM, Joonsoo Kim wrote: > On Tue, Jan 27, 2015 at 09:22:57PM -0500, Sasha Levin wrote: >> > +static int cma_free_mem(struct cma *cma, int count) >> > +{ >> > + struct cma_mem *mem = NULL; >> > + >> > + while (count) { >> > + mem = cma_get_entry_from_list(cma); >> > + if (mem == NULL) >> > + return 0; >> > + >> > + if (mem->n <= count) { >> > + cma_release(cma, mem->p, mem->n); >> > + count -= mem->n; >> > + kfree(mem); >> > + } else if (cma->order_per_bit == 0) { >> > + cma_release(cma, mem->p, count); >> > + mem->p += count; >> > + mem->n -= count; >> > + count = 0; >> > + cma_add_to_cma_mem_list(cma, mem); >> > + } else { >> > + cma_add_to_cma_mem_list(cma, mem); >> > + break; >> > + } >> > + } > Hmm... I'm not sure we need to deal with "mem->m < count" case. > It is not suitable for any cma_alloc/release usecase.
Maybe not, but the code in mm/cma.c supports that right now. If that ever changes we can make appropriate changes here.
> And, I'd like to insert some error log to last case rather than > silently ignoring the request.
I can add that.
Thanks, Sasha
| |