Hi, <snip..> >> - /* Might have an ongoing, fragmented, message to append */ >> - if (!channel->buf) { >> - channel->buf = kmalloc(chunk_size + left_size, GFP_ATOMIC); >> - if (!channel->buf) >> - return -ENOMEM; >> + if (glink->intentless) { >> + /* Might have an ongoing, fragmented, message to append */ >> + if (!channel->buf) { >> + intent = kzalloc(sizeof(*intent), GFP_ATOMIC); >> + if (!intent) >> + return -ENOMEM; >> + >> + intent->data = kmalloc(chunk_size + left_size, >> + GFP_ATOMIC); > > Who is supposed to free the intent and intent->data memory ? Well, that's done as a part of the rx_done_work. Regards, Sricharan -- "QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html