[RAMEN9610-12421][COMMON][MODAP-19520] Add skb free when skb is empty
authorJiyoung Jeong <ji_0.jeong@samsung.com>
Thu, 21 Feb 2019 10:06:19 +0000 (19:06 +0900)
committerhskang <hs1218.kang@samsung.com>
Sat, 23 Feb 2019 10:27:51 +0000 (19:27 +0900)
Change-Id: Idfbc4f1b507855d94c35e503b32640f5b0fd6a62
Signed-off-by: Jiyoung Jeong <ji_0.jeong@samsung.com>
drivers/misc/modem_if/include/exynos_ipc.h
drivers/misc/modem_if/modem_io_device.c

index 2bbfa30eaa8ed8a869920a80e7124e5aa68e68ca..70b7378e57d57e67c9044986add1bec2eab56952 100644 (file)
@@ -91,6 +91,7 @@ enum exynos_ch_id {
        EXYNOS_CH_ID_DUMP = 242,
 
        EXYNOS_CH_ID_FMT_0 = 245,   /*umts_ipc0*/
+       EXYNOS_CH_ID_FMT_1 = 246,   /*umts_ipc1*/
        EXYNOS_CH_ID_MAX = 255,
        EXYNOS_CH_ID_FLOW_CTRL = 255
 };
@@ -206,7 +207,7 @@ static inline unsigned int exynos_get_frame_len(u8 *frm)
 
 static inline bool exynos_fmt_ch(u8 ch)
 {
-       return (ch == EXYNOS_CH_ID_FMT_0) ? true : false;
+       return (ch == EXYNOS_CH_ID_FMT_0 || ch == EXYNOS_CH_ID_FMT_1) ? true : false;
 }
 
 static inline bool exynos_rfs_ch(u8 ch)
index 1bf360d7bd553761dda1aaf506e398c607d0aa57..f7f5e6be11a2e3c5b3f10356a609c6757245a50c 100644 (file)
@@ -264,12 +264,12 @@ static int gather_multi_frame(struct exynos_link_header *hdr,
                while (!skb_queue_empty(multi_q)) {
                        skb_tmp = skb_dequeue(multi_q);
                        memcpy(skb_put(skb_new, skb_tmp->len), skb_tmp->data, skb_tmp->len);
+                       dev_kfree_skb_any(skb_tmp);
                }
 
                skb_trim(skb_new, skb_new->len);
                skb_queue_tail(rxq, skb_new);
 
-               skb_queue_purge(multi_q);
                skb_queue_head_init(multi_q);
 
                wake_up(&iod->wq);