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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/